错误信息处理、数据校验
错误信息处理:
//测试数据格式化
@RequestMapping(value = "testDateTimeFormat")// 如果格式化错误,会将错误信息传入result
public String testDateTimeFormat(Student student, BindingResult result,Map<String,Object> map){
 
    System.out.println(student.getId()+","+student.getName()+","+student.getBirthday());
    if (result.getErrorCount()>0){
        for (FieldError error:result.getFieldErrors()){
            System.out.println(error.getDefaultMessage());
            map.put("errors",result.getFieldError());
        }
    }
    return "success";
}
注意:BindingResult必须放到对象后面一位。Student student, BindingResult result这两参数之间不能有其他参数。
 
数据校验:
JSR 303
 
Hibernate Validator使用步骤:
a.jar包
 
b.配置
<mvc:annotation-driven></mvc:annotation-driven>
LocalValidatorFactoryBean是ValidatorFactory的一个实现类。
<mvc:annotation-driven></mvc:annotation-driven>会在springmvc容器中自动加载一个LocalValidatorFactoryBean实现类。
 
c.直接使用注解
@Past//当前时间以前
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
在校验的Controller中,给校验的对象前加@Valid。
public String testDateTimeFormat(@Valid Student student, BindingResult result, Map<String,Object> map)