JSR-303
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。
Bean Validation 中内置的 constraint
事例
实体类
public class User{ @NotNull @Length(min = 1,max = 5) private String name; @Size(min=1,max=5) private int pasWord
}
控制器
@RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody ResponseEntity createUser(@ModelAttribute @Valid User user, BindingResult result) { if (result.hasErrors()) { return ...; } return ...; }
注:Hibernate Validate提供了JSR-303的实现,但是它仅支持Controller类方法的对象参数验证,不支持原始类型(String,int,char,boolean等)参数验证 。如需支持原始类型参数,请使用Spring Validator的@Validated注解。
@RestController
@RequestMapping("hello")
@Validated
public class HelloController{ @RequestMapping("get/{id}")public String getById(@PathVariable @Min(1) int id) {return "input id is " + id ;}}