【问题标题】:Play Framework: Redirect to controller method with string argument doesn't workPlay Framework:使用字符串参数重定向到控制器方法不起作用
【发布时间】:2016-03-14 17:38:30
【问题描述】:

我正在尝试重定向到一个控制器方法,该方法使用反向控制器将 Long 和 String 作为参数。我用的是play framework的2.4版本。

我在路由文件中定义了这条路由:

GET     /games/play/:id    controllers.Games.renderGame(id: Long, feedback: String = "")

为了调用这个路由,我在另一个方法中使用了redirect():

return redirect(controllers.routes.Games.renderGame(gameId, "test"));

这是我的 renderGame() 方法:

public Result renderGame(Long id, String feedback) {
   //do something
   return ok(...);
}

在我看来,这实际上应该可以工作,但是 play 给了我一个错误:

错误:ReverseGames 类中的方法 renderGame 无法应用于 给定类型;

IntelliJ 正在努力做得更好: Error picture

如果我只使用 Long 作为参数定义方法,它工作正常,但是当添加字符串时,我再次收到错误。

知道这里有什么问题吗?

与这个问题有关,它实际上应该可以工作:Play Framework: Redirect to controller method with arguments

【问题讨论】:

    标签: java playframework playframework-2.0


    【解决方案1】:

    我自己解决了这个问题,但花了我几个小时。问题是我使用了= 而不是=?。它必须看起来像这样:

    GET     /games/play/:id                 controllers.Games.renderGame(id: Long, feedback: String ?= "")
    

    【讨论】:

      【解决方案2】:

      我认为问题在于路由定义尝试在 url 模式中添加 feedback 参数

      GET     /games/play/:id/:feedback    controllers.Games.renderGame(id: Long, feedback: String = "")
      

      干杯。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 2015-09-05
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多