如何验证Spring MVC @PathVariable值?


问题内容

对于在Spring MVC中实现的简单RESTful JSON api,我可以使用Bean验证(JSR-303)来验证传递到处理程序方法中的路径变量吗?

例如:

 @RequestMapping(value = "/number/{customerNumber}")
 @ResponseBody
 public ResponseObject searchByNumber(@PathVariable("customerNumber") String customerNumber) {
 ...
 }

在这里,我需要使用Bean验证来验证customerNumber变量的长度。Spring MVC v3.xx是否可能?如果没有,这种验证的最佳方法是什么?

谢谢。


问题答案:

Spring不支持@javax.validation.Valid@PathVariable在处理注释的方法参数。有一个改进请求,但仍未解决

最好的选择是只在处理程序方法主体中进行自定义验证,或者考虑org.springframework.validation.annotation.Validated按照其他答案中的建议使用。