我有一个奇怪的问题
这就是我在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()
我仍然得到同样的错误。所以我的问题是
答案 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"]