Spring --- Validation
来源:互联网 发布:烈焰龙城轮回数据 编辑:程序博客网 时间:2024/06/05 17:32
一) Validator接口
Spring的Validation功能设计很简单。使用Validator功能即可:
Spring的Validate策略就是一个类(Person)对应一个校验类(PersonValidator)。至于校验类的绑定,可以代码中显式的调用,也可以是采用annotation。个人比较推荐用annotation的方法。而如果在一个类的校验中需要用到另一个类的校验,我们可以这样写:
Spring的Validation功能设计很简单。使用Validator功能即可:
- public class Person {
- private String name;
- private int age;
- // the usual getters and setters...
- }
- public class PersonValidatorimplements Validator {
- /**
- * This Validator validates just Person instances
- */
- 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", "too.darn.old");
- }
- }
- }
public class Person { private String name; private int age; // the usual getters and setters...}public class PersonValidator implements Validator { /** * This Validator validates just Person instances */ 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", "too.darn.old"); } }}
Spring的Validate策略就是一个类(Person)对应一个校验类(PersonValidator)。至于校验类的绑定,可以代码中显式的调用,也可以是采用annotation。个人比较推荐用annotation的方法。而如果在一个类的校验中需要用到另一个类的校验,我们可以这样写:
- public class CustomerValidatorimplements Validator {
- private final Validator addressValidator;
- public CustomerValidator(Validator addressValidator) {
- if (addressValidator == null) {
- throw new IllegalArgumentException(
- "The supplied [Validator] is required and must not be null.");
- }
- if (!addressValidator.supports(Address.class)) {
- throw new IllegalArgumentException(
- "The supplied [Validator] must support the validation of [Address] instances.");
- }
- this.addressValidator = addressValidator;
- }
- /**
- * This Validator validates Customer instances, and any subclasses of Customer too
- */
- public boolean supports(Class clazz) {
- return Customer.class.isAssignableFrom(clazz);
- }
- public void validate(Object target, Errors errors) {
- ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName","field.required");
- ValidationUtils.rejectIfEmptyOrWhitespace(errors, "surname","field.required");
- Customer customer = (Customer) target;
- try {
- errors.pushNestedPath("address");
- ValidationUtils.invokeValidator(this.addressValidator,customer.getAddress(), errors);
- } finally {
- errors.popNestedPath();
- }
- }
- }
- Spring --- Validation
- Spring Validation
- spring validation
- Spring client validation
- spring validation 异常备忘
- Spring Validation Using Annotation
- spring mvc bean validation
- spring validation 源码分析
- spring mvc validation不起作用
- Spring Validation分组校验
- spring mvc validation
- Spring Bean Validation
- Spring Hibernate Validation
- SPRING MVC AJAX-FORM VALIDATION
- Spring MVC 的validation校验
- 基于Spring的Validation校验
- spring boot 使用hibernate-validation
- Validation
- 深入浅出Netty之一概念模型
- JAVA NIO 大文件读取
- java学习——画图板
- 蛇年回顾我的2012,展望2013—菜鸟程序员的成长
- com.sun.awt.AWTUtilities.setWindowOpacity相关说明
- Spring --- Validation
- IPA转APP的方法和APP转IPA的方法
- Linux服务器(redhat)的安全加固
- Axis WebService 一看就懂
- 多数据源的动态配置与加载使用兼框架交互的问题调试
- Java 按行读文件操作代码
- 设置TextView中文字的超链接
- Codeforces Beta Round #46 (Div. 2), problem: (D) Game 贪心YY
- XML文件生成