如题
1. maven 中引入
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.2.0.Final</version> </dependency>
2.使用
public class Content { @NotNull private String name; @Pattern(regexp="//d") private String amountAndUnit; private double price; }
3. 验证
public class Test { public static void main(String[] args) { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); Content content = new Content(); content.setAmountAndUnit("sgsd"); Set<ConstraintViolation<Content>> constraintViolations = validator .validate(content); Iterator<ConstraintViolation<Content>> it = constraintViolations .iterator(); while (it.hasNext()) { ConstraintViolation<Content> t = it.next(); System.out.println(t.getPropertyPath() + "=" + t.getInvalidValue() + ", " + t.getMessage()); } } }
输出:
amountAndUnit=sgsd, 需要匹配正则表达式"//d" name=null, 不能为null
Hibernate-validator是JSR303的一个实现。JSR303中定义了一种可以用Annotation来验证EntityBean信息 有效性的方式。虽然叫Hibernate-validator,但它是一个单独的jar文件,完全可以脱离Hibernate使用和扩展。
参考
http://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html_single/
附上一个与springmvc 集成的example