<mvc:annotation-driven>会自动注册RequestMappingHandlerMapping、
RaquestMappeingHandlerAdapter、
ExceptionHandlerExceptionResolver
提供以下支持:
支持使用ConversionService实例对表单参数进行类型转换
支持使用@NumberFormatannotattion、@DateTimeFormat注解完成数据类型的格式化
支持使用@Valid注解对JavaBean实例进行JSR 303 验证
支持使用@RequestBody和@ResponseBody注解
数据校验
1、配置校验
1、使用JSR 303验证标准
2、加入hibernate validator 验证框架
3、在SpringMVC配置文件中添加<mvc:annotation-driven/>
4、需要在bean的属性上添加对应的注解
5、在目标方法bean类型属性的前面添加@valid注解
2、配置错误跳转页面
验证出错的错误信息保存在BindingResult中 可以通过查看BindingResult判断是否出错,定制跳转页面
注意:需要校验的Bean对象和其他绑定结果对象或错误对象是成对出现的,他们之间不允许声明其他的入参
3、错误信息回显
页面显示所有错误信息:
<form:errors path="*"></form:errors>
也可以将form加在对应字段后面显示具体的错误
<form:errors path="lastName"></form:errors>
4、错误消息定制
1、编写国际化文件 i18n.properties
文件中为键值对:
键为 :校验注解类名(前缀).modelAttribute.属性名.属性类型名
pattern.user.password
NotEmpty.employee.lastName
注:
required做前缀:@RequiredParam("param1")标注了一个入参,但是该参数不存在
typeMismatch做前缀:数据绑定时类型不匹配问题
methodInvocation:springMVC在调用处理方法是发生了错误
值为 :消息内容
2、配置国际化文件
SpringMVC.xml中加入:
1 <bean id="messageSource" class="org.springframework.context.supportResourceBundleMessageSource"> 2 <property name="basename" value="i18n"></property> 3 </bean>