![](https://csdnimg.cn/release/download_crawler_static/86360581/bg1.jpg)
一. spring自带的服务器校验(原生校验)
1. 创建类实现Validator接口,加上@Component注解
2. 实现方法Validator接口的两个方法
validate方法进行验证错误信息加入Errors对象中, key=属性名
value=国际化资源文件中的key
public boolean supports(Class<?> aClass){
return aClass.isAssignableFrom(需要验证的类.class);
}
public void validate(Object o,Errors error){
error.rejectValue("属性名","错误信息(可以是国际化资源)")
}
1. 将实现类注入到controller类中,加上@Autowired
@Autowired
private 实现类 xxx;
2. 在controller方法中声明Errors对象,且Errors对象必须紧跟model
attribute(实体类)对象后面,在Controller方法中判断errors对象里面是否有错误
信息 errors.hasErrors()。
有:准备数据,返回注册页面
否:进行业务方法调用
@RequestMapping(value = "saveUser.action", method = RequestMethod.POST)
public String saveUser(@ModelAttribute() User user, Errors errors, Model
model) {
userValidater.validate(user, errors);
//
判断是否存在错误
if (errors.hasErrors()) {
this.setData(model);
model.addAttribute("user",user);
return "register";
}
return "register";
}
Errors对象与当前user对象进行了绑定,如果此时在方法中添加新的user对象,那么前端无
法获取errors的错误信息。
1. 在jsp中用<form:errors path="对象的属性名">