我需要通过一种方法处理两个@RequestMapping值。例如 /创建并创建/ {id}
@RequestMapping(value = {"create","create/{id}"}, method = RequestMethod.GET)
public String create_form(@PathVariable(value = "id") Long id,Model model, @ModelAttribute("channelNode") ChannelNode channelNode,
BindingResult result) {
if(id>0){ //or if id exsist
//do something
}
return CHANNELNODE_ADD_VIEW;
}
但是当我运行简单的“创建”网址而没有任何参数/
时,它不起作用它显示以下错误:
HTTP状态500 - 类型为Long
的方法参数缺少URI模板变量“id”输入状态报告
消息缺少类型为Long的方法参数的URI模板变量'id'
说明服务器遇到内部错误,导致无法完成此请求。
答案 0 :(得分:1)
很遗憾,您无法使用@PathVariable
执行此操作。
您需要通过定义2个单独的处理程序方法来实现,
没有路径变量
@RequestMapping(value = "create", method = RequestMethod.GET)
public String create_form(Model model, @ModelAttribute("channelNode") ChannelNode channelNode,
BindingResult result) {
return CHANNELNODE_ADD_VIEW;
}
一个路径变量
@RequestMapping(value = "create/{id}", method = RequestMethod.GET)
public String create_form(@PathVariable(value = "id") Long id,Model model, @ModelAttribute("channelNode") ChannelNode channelNode,
BindingResult result) {
return CHANNELNODE_ADD_VIEW;
}