2010-10-18 73 views
0

我有一个页面接受来自用户的参数。我在使用params.playerId的操作中读取了这个参数。然后用它进行计算。阅读屏幕上输入的参数

我已经改变了我的用户界面,并正在使用extJS进行显示。 因此我有一个编辑和一个editData操作。 editData操作具有运行sql并执行相应的js文件并显示edit.jsp的代码。但是,在editData操作中,当我使用params.playerId时,我得到一个空值。

什么可以成为这种情况下的工作?

我的代码在与extJS集成之前调用:列表动作被调用,list.gsp与数据一起显示。

DEF列表= {

DEF会话= sessionFactory.getCurrentSession() 高清结果=执行Session.createSQLQuery( “选择从w.music player_id其中player_id =(params.playerId)”)列表();
DEF tuneInstanceList =新的ArrayList()
DEF调=新调谐()
result.each
{ tune.playerId =它
tune.playerPrice = “100” tuneInstanceList.add(乐曲)
} [recoveryInstanceList:recoveryInstanceList]
}
现在,当我与extJS集成时,我将params.playerId的值设为null。代码如下。

的list.gsp:

<%@页面进口= “tune.Music” %>

<script type="text/javascript"> 

    var ds = new Ext.data.Store({ 
     autoLoad: true, 
     proxy: new Ext.data.HttpProxy({ 
     url: 'http://localhost:8080/tune/music/listData'}), 
     reader: new Ext.data.JsonReader({ 
     results: 'total', 
     root:'items', 
     id:'id' 
     }, 
     [ 
       {name: 'playerId'}, 
       {name: 'playerPrice'} 

      ] 
     ) 
    }); 

    var cm = new Ext.grid.ColumnModel([ 
     {header: "Player Id", width: 70, sortable:true, dataIndex: 'playerId'}, 
     {header: "Player Price", width: 90, dataIndex: 'playerPrice'} 


    ]); 
    //cm.defaultSortable = true; 

    // create the grid 
    var grid = new Ext.grid.GridPanel({ 
     ds: ds, 
     cm: cm, 
     renderTo:'grid-example', 
     width:1300, 
     height:300 
    }); 
      </script> 

<div class="body"> 
<!--<g:javascript library="examples"/>--> 
<!-- EXAMPLES --> 
<h1>Ext Grid</h1> 



<div id="grid-example"></div> 


</div> 

我的控制器动作:

def list={ } 

def listData = { 
def session = sessionFactory.getCurrentSession() 
def result = session.createSQLQuery("select player_id from w.music where player_id= (params.playerId)").list(); 
def tuneInstanceList = new ArrayList() 
result.each { 
def tune = new Tune() 
tune.playerId = it tune.playerPrice = "100" 
tuneInstanceList.add(tune) 
} 
def listResult = [total: tunInstanceList.size(), items: tunInstanceList] 
render listResult as JSON; 

}

我怎么能检索已通过用户输入的参数?

谢谢!

回答

1

通过阅读list()操作中的参数并将其保存在会话中,解决了此问题。

然后在listData()动作中使用此会话数据进行计算。

不知道这是否是最好的方法。这只是一个解决方法。

+0

接受我的答案,因为找不到其他解决方法。 – MAlex 2010-11-09 07:45:59