Playframework 玩框架传递查询字符串

Playframework 玩框架传递查询字符串,playframework,playframework-1.x,Playframework,Playframework 1.x,正确的剧本是什么!将查询字符串(如?a=x&b=y)附加到渲染模板调用的方法,如下所示: render("@Login.index"); 此外,我还希望通过后续表单post来维护此查询字符串(以下代码段的粗略尝试无法编译): 我可能会想出一些笨拙的解决方案,将原始querystring显式地作为参数传递,然后将其存储在一个隐藏的表单字段中,但是知道怎么玩!我相信还有更优雅的。。。有人能告诉我这是什么吗?要做到这一点,我想你需要改变编码表单的方式 试试看: %{ action = pl

正确的剧本是什么!将查询字符串(如?a=x&b=y)附加到渲染模板调用的方法,如下所示:

render("@Login.index"); 
此外,我还希望通过后续表单post来维护此查询字符串(以下代码段的粗略尝试无法编译):


我可能会想出一些笨拙的解决方案,将原始querystring显式地作为参数传递,然后将其存储在一个隐藏的表单字段中,但是知道怎么玩!我相信还有更优雅的。。。有人能告诉我这是什么吗?

要做到这一点,我想你需要改变编码表单的方式

试试看:

%{
    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}

要做到这一点,我认为您需要更改表单的编码方式

试试看:

%{
    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}

玩!是无状态的,因此您必须重新通过参数:

#{a @login().add('a', _caller.params.a).add('b', _caller.params.b)}login#{/a}
或者将参数保存在游戏缓存中:

Cache.set(session.getId(), params.get("a"), "5mn");

玩!是无状态的,因此您必须重新通过参数:

#{a @login().add('a', _caller.params.a).add('b', _caller.params.b)}login#{/a}
或者将参数保存在游戏缓存中:

Cache.set(session.getId(), params.get("a"), "5mn");