繁体   English   中英

播放框架:使用字符串参数重定向到控制器方法不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM