[英]Play Framework: Redirect to controller method with string argument doesn't work
我试图重定向到控制器方法,该方法通过使用反向控制器将Long和String作为参数。 我使用播放框架的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(...);
}
我认为这实际上应该可行,但是播放给我一个错误:
错误:类ReverseGames中的renderGame方法不能应用于给定类型;
IntelliJ试图做得更好: 错误图片
如果我仅使用Long作为参数来定义方法,则可以正常工作,但是当添加String时,我会再次收到错误消息。
知道这里有什么问题吗?
与此问题相关,它实际上应该可以工作: 播放框架:使用参数重定向到控制器方法
我自己解决了问题,但花了我几个小时。 问题是我用=
而不是=?
。 它必须看起来像这样:
GET /games/play/:id controllers.Games.renderGame(id: Long, feedback: String ?= "")
我认为问题在于路由定义尝试在url模式中添加feedback
参数
GET /games/play/:id/:feedback controllers.Games.renderGame(id: Long, feedback: String = "")
干杯。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.