我正在尝试映射网址/locations/{locationId}/edit.html - 这似乎与此代码一起使用:
@Controller
@RequestMapping( "/locations" )
public class LocationController
{
@RequestMapping( value = "/{locationId}/edit.html", method = RequestMethod.GET )
public String showEditForm( Map<String, Object> map, @PathVariable int locationId )
{
map.put( "locationId", locationId );
return "locationform";
}
}
将提及的网址结果称为例外:
java.lang.IllegalArgumentException: Name for argument type [int] not available, and parameter name information not found in class file either.
我是否以错误的方式使用@PathVariable Annotation?
如何正确使用?
答案 0 :(得分:35)
应为@PathVariable("locationId") int locationId
答案 1 :(得分:16)
您应该将value
参数添加到@PathVariable
,例如
public String showEditForm(
@PathVariable("locationId") int locationId,
Map<String, Object> map) {
// ...
}
答案 2 :(得分:0)
参数名称展示在JDK7中可用,否则您必须在注释中设置它。
你应该在明确使用之前使用JDK博览会(比如Johan和Moniul建议的那样)作为注释的一部分,因为如果你想改变参数键,你只需要编辑变量名而不是任何其他的密码。其他行和/或类中的注释规范。让我们称之为单一来源。