1.声明
当前内容主要为复习Spring中的对一个Bean进行属性校验,主要使用Errors和ValidationUtils这些Spring原生的校验
创建需要校验的Bean:
Person .java
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
创建对Person进行校验的类:
PersonValidator .java
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
public class PersonValidator implements Validator {
/**
* This Validator validates only Person instances
*/
public boolean supports(Class clazz) {
return Person.class.equals(clazz);
}
public void validate(Object obj, Errors e) {
ValidationUtils.rejectIfEmpty(e, "name", "当前的用户名为空,请输入用户名!");
// ();//用于校验当前的对象的属性视为为null或者" "
Person p = (Person) obj;
if (p.getAge() <= 0) {
e.rejectValue("age", "当前的用户年龄太小,不合法!");
} else if (p.getAge() > 110) {
e.rejectValue("age", "当前用户的年龄太大,不合法!");
}
}
}
创建测试类:
DataValidateTest .java
import java.util.List;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.Errors;
import org.springframework.validation.FieldError;
import org.springframework.validation.ValidationUtils;
/**
* @description 当前内容主要为测试数据校验
* @author admin
*
*/
public class DataValidateTest {
public static void main(String[] args) {
Person person = new Person();
Errors errors = new BeanPropertyBindingResult(person, Person.class.getSimpleName());
ValidationUtils.invokeValidator(new PersonValidator(), person, errors);
System.out.println(errors.getErrorCount());
List<FieldError> fieldErrors = errors.getFieldErrors();
for (FieldError fieldError : fieldErrors) {
System.out.println(fieldError.getField() + ":" + fieldError.getCode());
}
}
}
测试结果:
2
name:当前的用户名为空,请输入用户名!
age:当前的用户年龄太小,不合法!
3.总结
- 使用Spring的原生校验的时候需要使用ValidationUtils和一个存放错误的Errors(一个子类)
- 采用各种校验的方式来进行校验,通过获取Errors的方式判断是否出现错误