tags:

views:

25

answers:

0

Hi,

I have a page that accepts parameters from the user. I read this parameter in my action using params.playerId. and then do the computations with it.

I have changed my UI now and am using extJS for display purposes. Therefore I have an edit and an editData action. editData action has the code to run the sql and execute the appropriate js file and displays edit.jsp. However, in the editData action, when I use params.playerId, I get a null value.

What can be a work round for this scenario?

My code before integrating with extJS: list action is called and list.gsp is displayed with data.

def list = {

    def session = sessionFactory.getCurrentSession() 
    def result = session.createSQLQuery("select player_id from w.music where player_id=(params.playerId)").list();   
    def tuneInstanceList = new ArrayList()   
    def tune = new Tune()  
    result.each    
    {
    tune.playerId = it   
    tune.playerPrice = "100" tuneInstanceList.add(tune)  
} 
    [recoveryInstanceList: recoveryInstanceList]  

}
Now, when I ntegrate with extJS, I get the value of params.playerId as null. Code is below.

list.gsp:

<%@ page import="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> 

My controller action:

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;
}

How can I retrieve the parameters that have been entered by the user??

Thanks!