我正在使用play Framework 2.7.x
我在controller.list()
上有一个视图的公式编制器,我们称之为“索引”。单击“发送”后,它将打开controller.add()
,在其中执行一些操作,然后重定向回controller.list()
。如果公式器中有错误(必填字段为空),我需要将queryString发送到controller.add()
并也重定向到controller.list()
问题在于,如果我做的只是传递请求之类的事情,就会收到一个错误,提示无法添加参数。
public Result list(Http.Request request)
{
// .... stuff with foo, while foo is an Form<foo> Object
// ... foo.bindFromRequest(request)
ok(views.html.index.render(foo))
}
public Result add(Http.Request request)
{
// not allowed to add request as an argument. only empty is allowed.
return Results.redirect(controllers.routes.Controller.list(request));
}
我只想重定向Form对象,这样我就可以处理controller.list()
中的错误,而不必为controller.add()
生成额外的视图。如果我在controller.list()
内执行所有操作,则此代码不会出现问题,但我喜欢使用controller.add()
方法。
可以吗?除了手动传递每个querystring key and value
。
答案 0 :(得分:0)
昨天半天搜索之后,我发现今天有些有趣。
您不允许在=
中使用默认参数。您必须在?=
内使用routes
的可选默认参数!!!!!!!!
您可以实现QueryStringBindable
,因此绑定查询字符串要容易一些。但是您仍然必须“手动”绑定它们。