如何在Spring中验证长PathParam

时间:2017-09-14 11:15:43

标签: java spring validation spring-mvc

我想验证以下@RequestMapping的输入:

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ResponseBody
public Response getCategory(@PathVariable("id") Long id) {
   // some logic here
}

当端点的使用者传递字符串后发生以下错误:

Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "null"

我可以将其更改为字符串,但我相信有更好的方法可以做到。

1 个答案:

答案 0 :(得分:3)

来自RC的答案是确保您的ID由数字组成的非常好的方法。

通常,如果要验证传入请求,还可以通过实现HandlerInterceptor创建并注册自定义拦截器,然后在重写的preHandle方法中添加验证。