2010-10-18 2 views
0

У меня есть страница, которая принимает параметры от пользователя. Я прочитал этот параметр в своем действии, используя params.playerId. а затем выполнить вычисления с ним.Чтение параметров enterd на экране

Теперь я изменил свой интерфейс и использую extJS для отображения. Поэтому у меня есть действие редактирования и editData. editData action имеет код для запуска sql и выполняет соответствующий js-файл и отображает edit.jsp. Однако в действии editData, когда я использую params.playerId, я получаю нулевое значение.

Что может быть для этого сценария?

Мой код перед тем, как интегрироваться с вызовом extJS: list, и list.gsp отображается с данными.

список DEF = {

Защиту сессия = sessionFactory.getCurrentSession() Защиту результат = session.createSQLQuery ("выберите player_id из w.music где player_id = (params.playerId)") список().
Защиту tuneInstanceList = новый ArrayList()
четкость настройки = новая Настройка()
result.each
{ tune.playerId = это
tune.playerPrice = "100" tuneInstanceList.add (настройка)
} [recoveryInstanceList: recoveryInstanceList]
}
Теперь, когда я ntegrate с 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

Работала над этой проблемой, читая параметры в списке() и сохраняя ее в сеансе.

Затем использовались данные сеанса в действии listData() для выполнения вычислений.

Не уверен, что это лучший подход. Это всего лишь обходной путь.

+0

Принимая мой ответ, поскольку никаких других обходных решений не найдено. – MAlex

Смежные вопросы