如题
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
http://blog.csdn.net/wuyt2008/article/details/8597312