2012-03-13 44 views
2

什么是正确的播放!方式钉在一个查询字符串,如= X & B = y以渲染模板调用像这样:玩!框架传递询问串

render("@Login.index"); 

另外,我也想通过随后的表单提交保持这个查询字符串以及(下面的代码片段的原油尝试不编译):

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

我也许可以找出一些kludgey解决方案明确地传递原始查询字符串作为参数,然后在一个隐藏的表单字段也许存放,但知道玩!我确定有更优雅的东西......有人能告诉我它是什么吗?

回答

0

要做到这一点,我认为你需要改变的方式来编写你的表格......

试试看:

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

玩!是无状态的,所以你要么必须再经过该PARAMS:

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

要么继续玩的缓存里面的PARAMS:

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