Java Validation
- pom.xml
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>
- Person.java
import javax.validation.constraints.*;
import org.hibernate.validator.constraints.*;
import lombok.*;
@Data
public class Person implements Serializable {
private int id;
@Min(18)
@Max(value=65)
private int age;
private String name;
@Length(max=10)
private String address;
@Past
private Date birthday;
private BigDecimal weight;
@Email
private String email;
}
- 测试
import javax.validation.*;
public class TestPersonValidator {
private static ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
public static <T> List<String> validate(T t) {
Validator validator = factory.getValidator();
Set<ConstraintViolation<T>> constraintViolations = validator.validate(t);
List<String> messageList = new ArrayList<String>();
for (ConstraintViolation<T> constraintViolation : constraintViolations) {
messageList.add(constraintViolation.getMessage());
}
return messageList;
}
public static void main(String[] args) {
Person p = new Person();
p.setAge(100);
p.setEmail("qwer");
p.setAddress("阿阿斯顿发斯蒂芬斯蒂芬阿斯顿发撒旦法撒旦法");
List<String> validate = validate(p);
for (String string : validate) {
System.out.println(string.toString());
}
}
}
控制台输出:
2016-11-15 11:23:39 INFO [org.hibernate.validator.internal.util.Version] HV000001: Hibernate Validator 5.2.4.Final
长度需要在0和10之间
最大不能超过65
不是一个合法的电子邮件地址
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: JAVA字段校验(validation)
- 下一篇: 查找子串