6.4.使用Spring的Validator接口进行校验
优质
小牛编辑
131浏览
2023-12-01
6.4. 使用Spring的Validator接口进行校验
你可以使用Spring提供的validator接口进行对象的校验。Validator接口的使用相当的直接,同时它能与一个所谓的Errors对象协同工作。换句话说,在Spring做校验的时候,它会将所有的校验错误汇总到Errors对象中去。
正如先前所说,Validator接口的使用相当的直接,你不妨实现一下这个接口,考虑下面这个简单的数据类:
public class Person { private String name; private int age; // the usual suspects: getters and setters }
实现org.springframework.validation.Validator
接口,我们将提供对Person
类的校验行为,下面就是这个Validator接口需要实现的方法:
supports(Class)
:表示这个校验器是否支持提供的object。validate(Object, org.springframework.validation.Errors)
:对提供的对象进行校验,并将校验的错误注册到相应的Errors对象中。
实现一个校验器也比较简单,尤其是当你了解Spring所提供的ValidationUtils
的时候。我们一起来看一下如何才能创建一个校验器。
public class PersonValidator implements Validator { public boolean supports(Class clazz) { return Person.class.equals(clazz); } public void validate(Object obj, Errors e) { ValidationUtils.rejectIfEmpty(e, "name", "name.empty"); Person p = (Person) obj; if (p.getAge() < 0) { e.rejectValue("age", "negativevalue"); } else if (p.getAge() > 110) { e.rejectValue("age", "tooold"); } } }
正如你在上面所看到的那样,我们使用了ValidationUtils
中的一个静态
方法来对name属性进行校验。请参照ValidationUtils
相关的JavaDoc,查看一下除了例子中介绍过的,其他的一些功能。