2010-10-18 102 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