Bean Validation 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回。
下载 JSR 303 – Bean Validation 规范 http://jcp.org/en/jsr/detail?id=303
Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。如果想了解更多有关 Hibernate Validator 的信息,请查看 http://www.hibernate.org/subprojects/validator.html
Bean Validation 中的 constraint
表 1. Bean Validation 中内置的 constraint
表 2. Hibernate Validator 附加的 constraint
一个 constraint 通常由 annotation 和相应的 constraint validator 组成,它们是一对多的关系。也就是说可以有多个 constraint validator 对应一个 annotation。在运行时,Bean Validation 框架本身会根据被注释元素的类型来选择合适的 constraint validator 对数据进行验证。
有些时候,在用户的应用中需要一些更复杂的 constraint。Bean Validation 提供扩展 constraint 的机制。可以通过两种方法去实现,一种是组合现有的 constraint 来生成一个更复杂的 constraint,另外一种是开发一个全新的 constraint。
++++++++++++++++++++++++++
编程调用:
40 | public static void main(String[] args) { |
41 | Person p = new Person(); |
43 | ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); |
44 | Validator validator = factory.getValidator(); |
45 | Set<ConstraintViolation<Person>> validate = validator.validate(p); |
46 | for (ConstraintViolation<Person> constraintViolation : validate) { |
47 | System.out.println(constraintViolation.getPropertyPath()); |
48 | System.out.println(constraintViolation.getMessage()); |