注解驱动
<mvc:annotation-driven></mvc:annotation-driven>
一、mvc:annotation-driven(动态资源)自动注册RequestMappingHandlerMapping/RequestMappingHandlerAdapter/ExceptionHandlerExceptionReslover
默认控制
<mvc:default-servlet-handler></mvc:default-servlet-handler>
二、<·mvc:default-servlet-handler/>(静态资源)
提供4个支持
- 支持使用ConversionService实例对表单参数进行类型转换
- 支持使用@NumberFormat annotation、@DateTimeFormat注解完成数据类型格式化
@DataTimeFormat(pattern=“yyyy-MM-dd”)
private Date birth;
400原因 不使用或使用FormattingConversionServiceFactoryBean类型转换器
@NumberFormat(pattern="#,###,.##")几千,保留两位小数
- 支持使用@Vaild注解对javabean对象进行JSR 303验证
法1:将bean中每个数据取出进行校验,如果失败来到添加页码重新填写
法2:springMVC的JSR303做数据校验,在bean属性上标注解,Hibernate Validator是JSR303一个实现
三步:1.导包
2.加注解 @NotEmpty(message="!!!") @Length(min=4,max=18) @Email @Past过去时间、@Future未来时间
3.在springMVC封装对象时,方法参数前加@Vaild,成功:给校验的javabean后紧跟一个BindingResult对象,bindingresult.hasErrors()返回false成功,返回true失败
或bindingresult.getFieldErrors() 遍历集合对象的getDefaultMessage错误消息提示和getField()错误字段
将错误字段名作为key,错误消息作为value,model.addAttribute保存在一个map中,使用el表达式
- 支持使用@RequestBody和@ResponseBody注解
@RequestMapping(value="/emp",method = RequestMethod.POST)
public String AddSuccess(@Valid Employee employee, BindingResult bindingResult){
System.out.println(":"+employee);
if (bindingResult.hasErrors()) {
System.out.println("有校验错误,终止");
return "restful_emp_add";
}else {
employeeDao.insertAndUpdate(employee);
return "redirect:/emps";
}
}