Играть! каркасный проход - PullRequest
2 голосов
/ 13 марта 2012

Как правильно играть! способ прикрепить строку запроса, например? a = x & b = y, к вызову шаблона рендеринга, например так:

render("@Login.index"); 

Кроме того, я также хотел бы сохранить эту строку запроса и в последующей публикации формы (грубая попытка следующего фрагмента кода не компилируется):

#{form @Login.login() + request.querystring, method:'post'} 

Я мог бы, вероятно, найти какое-нибудь решение kludgey, передавая исходную строку запроса в виде параметра и затем сохраняя ее, возможно, в скрытом поле формы, но зная Play! Я уверен, что есть что-то более элегантное ... может кто-нибудь сказать мне, что это такое?

Ответы [ 2 ]

0 голосов
/ 16 января 2013

Играть!не имеет состояния, поэтому вы должны либо переопределить параметры:

#{a @login().add('a', _caller.params.a).add('b', _caller.params.b)}login#{/a}

, либо оставить параметры в кеше Play:

Cache.set(session.getId(), params.get("a"), "5mn");
0 голосов
/ 27 октября 2012

Для этого, я думаю, вам нужно изменить способ кодирования вашей формы ...

Просто попробуйте:

%{
    action = play.mvc.Router.reverse("Login.login");
    for (String key : params.all() ) {
        if (!"body".equals(key) && !"controller".equals(key) && !"action".equals(key)) {
            action = action.add(key, params.get(key)[0]);
        }
    }
}%
#{form action, method:'post'}
    ...
#{/form}
...