如何使用JSR 303 @Valid注释来验证原始类型?

时间:2013-04-25 13:19:01

标签: java spring-mvc validation

JSR 303 @Valid注释可用于验证控制器方法的输入对象,如所示on Mkyong.com

是否可以使用@Valid注释来验证基本类型,如int和long []?如果是这样,怎么样?

这是一个示例Spring MVC方法签名,需要验证参数是否高于0:

@RequestMapping(value = { "/delete" }, method = RequestMethod.POST)
ModelAndView deleteBulk(@RequestParam("userId") int userId, @RequestParam("ids") long[] ids) {

2 个答案:

答案 0 :(得分:1)

不,它无法完成。这是针对 bean 验证的,如here所述。

答案 1 :(得分:1)

如果将 @Validated放在完整的控制器上,则可以验证@ RequestParam / @ PathVariable简单对象和基元。

如果您不使用spring-boot,则应自行声明MethodValidationPostProcessor

@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
    return new MethodValidationPostProcessor();
}