import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
public class User {
@NotBlank(message="昵称不能为空")
private String name;
@NotNull
private int age;
@NotBlank(message="地址不能为空")
private String adress;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", adress=" + adress + "]";
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
public class ValidatorUtils {
private static Validator validator;
static {
validator =Validation.buildDefaultValidatorFactory().getValidator();
}
//第二种方式创建Validator
// static {
// ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )
// .configure()
// .failFast(true)
// .buildValidatorFactory();
// validator = validatorFactory.getValidator();
// }
public static List<String> validateEntity(Object object,Class<?>... groups) {
Set<ConstraintViolation<Object>> validate = validator.validate(object, groups);
// ConstraintViolation<Object> constraint = validate.iterator().next();
List<String> list = new ArrayList<>();
for(ConstraintViolation<Object> aa :validate) {
list.add(aa.getMessage());
}
return list;
}
}
在项目中直接将 validateEntity 类中的 list 抛出错误即可 ,想测试使用结果…
使用 validator =Validation.buildDefaultValidatorFactory().getValidator();
创建 validator 将默认将获得所有错误!
第二种创建方式 .failFast(true) 为true 时 也会获得所有错误,为false时 只有一种错误,又称快速失败!看个人业务需求!