Spring Validator

Spring Validator提供 Spring 客户端验证机制,提供 Spring 服务器端通用的可配置的验证.

那么Spring Validator是如何工作的呢?Spring验证机制是Spring Validator接口与Errors协同工作,spring校验后会把错误汇总到Errors对象中.

当如要验证首先的一个POJO

public class LoginCommand(){  
    private String logname;      
    private String password;
    ...............
 } 
实现Validator接口 

package com.ywxm;

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

public class NewsJob implements Validator {

   @Override
   public boolean supports(Class clazz) {
      return LoginCommand.class.isAssignableFrom(aClass);;
   }
       
  //rejectIfEmptyOrWhitespace不能为空或空白
  //第一个logname,password为实体的属性名(根据此名验证属性)
  //第二个logname,password为errorCode(前提根据errorCode获取错误提示信息)//汉字为错误提示信息 }

   @Override
   public void validate(Object target, Errors errors) {
      ValidationUtils.rejectIfEmptyOrWhitespace(errors,"logname","logname" "用户名不能为空"); 
         //ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password","password" "密码不能为空");
         //error.logname.empty   可以用国际化来获取 logname:既起实体属性名,又起errorCode值作用 
      ValidationUtils.rejectIfEmptyOrWhitespace(errors, "logname", "error.logname.empty"); 
  }
}
使用校验

 LoginValidator logValidator=new LoginValidator(); 

 logValidator.validate(LoginCommand,Errors) 

jsp中使用

 

   
 


上面用了两种方式获取错误信息.通过${status.errorMessages}返回的是错误数组。status.errorMessages是固定的.这个标签可以把对应提交的form独享与表单中相关名称字段绑定。 这样就会把该字段验证时失败的信息显示出来


你可能感兴趣的:(Spring)