【问题标题】:play framework - redirecting with querystring播放框架 - 使用查询字符串重定向
【发布时间】:2019-05-20 22:03:43
【问题描述】:

我正在使用 play Framework 2.7.x

我的controller.list() 上有一个带有视图的公式,我们称之为“索引”。单击“发送”后,它会打开controller.add(),它会在其中执行一些操作,然后重定向回controller.list()。如果公式中有错误(所需字段为空),我需要发送到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

【问题讨论】:

    标签: redirect playframework query-string


    【解决方案1】:

    昨天搜了半天,今天发现了一些有趣的东西。

    1. 您不能在= 中使用默认参数。您必须在routes 中使用带有?= 的可选默认参数!!!!!

    2. 您可以实现QueryStringBindable,这样绑定查询字符串会更容易一些。但是您仍然必须“手动”绑定它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多