需要实现org.springframework.validation.Validator接口,针对模型进行校验。
package com.article7.example11.validator;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import com.article7.example11.pojo.StudentModel;
public class StudentValidator implements Validator{
@Override
public boolean supports(Class<?> clazz) {
// TODO Auto-generated method stub
return StudentModel.class.equals(clazz);
}
@Override
public void validate(Object obj, Errors errors) {
// TODO Auto-generated method stub
ValidationUtils.rejectIfEmpty(errors, "name", null, "姓名不能为空");
ValidationUtils.rejectIfEmpty(errors, "pwd", null, "密码不能为空");
if(errors.hasErrors()){
return;
}
StudentModel stu=(StudentModel) obj;
if(stu.getName().length()<5||stu.getName().length()>10){
errors.rejectValue("name", null, "姓名长度有误,应在5-10之间");
}
if(stu.getPwd().length()<8||stu.getPwd().length()>15){
errors.rejectValue("pwd", null, "密码长度有误,应在8-15之间");
}
if(stu.getAge()<=0||stu.getAge()>=100){
errors.rejectValue("age", null, "年龄长度有误,应在0-100之间");
}
}
}
package com.article7.example11.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.RequestMapping;
import com.article7.example11.pojo.StudentModel;
import com.article7.example11.validator.StudentValidator;
@Controller
@RequestMapping("/example11/validAttrController")
public class ValidController {
StudentValidator studentValid=new StudentValidator();
@RequestMapping("/validStudent.htm")
public String bindRequest(StudentModel student,Errors errors){
studentValid.validate(student,errors);
if(errors.hasErrors()){
return "/example11/error";
}
return "/example11/result";
}
}
package com.article7.example11.pojo;
public class StudentModel {
private String name;
private String pwd;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}