Доступ к параметрам запроса из веб-потока Grails

Я играю с веб-потоком Grails и испытываю удивительные трудности с чтением значений параметров из запроса. Я определил простой поток следующим образом:

def testFlow = {

    stepOne{

        String name = params.name

        render(view: "stepTwo", [name: name])
    }
    ... 
}

Проблема, с которой я сталкиваюсь, заключается в том, что параметр имени не разрешается в значение имени, которое я передаю в запросе, а скорее ему присваивается значение String "org.codehaus.groovy.grails.commons.metaclass.PropertyExpression" это имя класса неявного объекта params, присутствующего в контроллерах Grails.

Если я помещу то же назначение параметра в замыкание контроллера, отличного от веб-потока (т. Е. Стандартное замыкание контроллера), назначение работает так, как вы ожидаете, и объекту «имя» присваивается значение, которое я передаю через параметры запроса.

Я упускаю из виду что-то явно очевидное здесь (будет не в первый раз), или кто-нибудь еще видел такую ​​​​же проблему? Я также пытался получить доступ к значению параметра, используя params['name'] и params.getProperty('name'), но во всех случаях результат одинаков.


person Jay Shark    schedule 17.04.2011    source источник


Ответы (1)


Ваше определение потока/DSL на самом деле не выглядит правильным. Обычно вы не используете render() в DSL, так как рендеринг происходит за вас на основе ваших имен состояний. Кроме того, доступ к params обычно осуществляется через замыкание action и/или on.

Вот одно из лучших коротких руководств по веб-потоку Grails. Обнаружение веб-потоков Grails

person Derek Slife    schedule 18.04.2011
comment
Спасибо Дерек - этот пост в блоге помог немного прояснить ситуацию. - person Jay Shark; 19.04.2011