playframe工作无法找到正确的路线

时间:2016-04-28 15:36:13

标签: java scala playframework

我有一个奇怪的问题

这就是我在routes个文件中的内容

GET     /path/list                          controllers.path.getPaths()
GET     /path/:id                           controllers.path.get(id:Int)

当我尝试<domain>/path/list时出现以下错误:

  

对于请求'GET / path / list'[无法将参数id解析为Int:For   输入字符串:“list”]

我还尝试更改routes文件

中的顺序
GET     /path/:id                           controllers.path.get(id:Int)
GET     /path/list                          controllers.path.getPaths()

我仍然得到同样的错误。所以我的问题是

  1. 是不是应匹配匹配的第一条路径?
  2. 还有什么问题(例如java代码)?

1 个答案:

答案 0 :(得分:4)

根据您提供的代码,这应该有效。路线不含糊,因为(来自Play文档):

  

许多路线可以匹配相同的请求。如果存在冲突,则使用第一条路线(按声明顺序)。

如果您的routes订购如下:

GET     /path/list                          controllers.path.getPaths()
GET     /path/:id                           controllers.path.get(id:Int)
在尝试从路径中提取/转换id参数/path/list并投掷之前,

id:Int将匹配。

  

如果您希望Play将传入参数转换为特定的Scala类型,则可以添加显式类型

工作的唯一方法是,如果您尝试访问的路线与list不匹配或不是Int

For request 'GET /path/lists' [Cannot parse parameter id as Int: For input string: "lists"]