我有以下请求映射:
@RequestMapping(value = {"/product/{id}-{name}"}, method = RequestMethod.GET)
当我使用" / product / 1-product-name-here"对此端点执行GET时我收到以下错误:
无法转换类型' java.lang.String'的值要求的类型' int&#39 ;;嵌套异常是java.lang.NumberFormatException
任何人都可以建议我应该做些什么来解决这个问题?我认为Spring会在第一个破折号之前采取任何措施作为ID以及随后的任何内容作为名称,但事实并非如此。
如果我使用/ product / 1-name进行GET,它可以正常工作。如果路径变量包含破折号,那似乎是一种奇怪的行为。
由于
答案 0 :(得分:0)
尝试以下方法:
@RequestMapping(value = {"/product/{id:\\d+}-{name}"}, method = RequestMethod.GET)
您可以为路径变量提供正则表达式。你需要在冒号(:)之后给出正则表达式。
答案 1 :(得分:0)
添加绑定注释@PathVariable并将其分配给所需的变量类型
@RequestMapping(value = "/product/{id}/{name}", method = RequestMethod.GET)
public void yourMethod(@PathVariable("id") Long id, @PathVariable("name") String name )
{
...
}