近来学习SpringMVC中,对DataBinding和Validation这一块比较迷惑,特地总结了一下:
validator: 数据校验,
分两种一种是Spring自己提供的Validator接口和JSR303标准的注解式校验
注册方式:
1. 在@InitBinder方法中局部注册
2. 自定义JSR303注解
调用方式:
1. 对于已注册或注解方式, 在参数前加@Valid标识调用 (注意只能用在表单提交的model上)
2. 对于Validator接口可以手工编写代码调用
对于使用了Hibernate时,Hibernate会自动调用JSR303标准验证。
PropertyEditor(1), Converter(2)/HttpMessageConverter(3), Formatter(4):
全部用于数据类型的转换.
(1)是JDK自带的, 其它的都是Spring提供接口.
(1)(4)用于String和所需类型之间的转换;(2)可以是任意类型间的转换,包括了String与其它类型的转换;(3)用于把HttpMessage(包括HttpRequest和HttpResponse)中的内容与所需类型之间的转换.
它们都可以由Spring自动调用(在需要类型转换的时候), (4)还可提供注解形式,用注解指明调用.
遇到类型转换时, 它们的调用顺序如下(后者只有在前者未找到时执行):
1. 使用@InitBinder注册的PropertyEditor (只在局部注册,优先使用)
2. Formatter, Formatter加入了Locale信息, 所以会优先使用, 如果使用了注解形式, 优先使用注解
3. Converter
4. 全局的PropertyEditor (注意Spring未使用PropertyEditorManager, 只支持在Model的同包下查找ModelEditor)
注意: HttpMessageConverter主要用于HttpMessage跟对象的转换,只有在使用@RequestBody, HttpEntity<T>, @ResponseBody实会用到。
注册方式:
PropertyEditor:
1. 在@InitBinder方法中注册(局部)
2. 把它放在model包中,名字为model类名+Editor, 如User-->UserEditor且在同一包中(全局)
Formatter:
1. 在FormattingConversionServiceFactoryBean-->formatters中注册
2. 使用实现注解的方式
Converter
1. 在FormattingConversionServiceFactoryBean-->converters中注册
HttpMessageConverter
1. 在<mvc:annotation-driven>--><mvc:message-converters>中注册
详情请参考示例工程, 请阅读源码包中的readme.txt文件(有多个), 测试是无法一次测试的, 因为上面说的查找顺序的关系所以需要注释一些代码才能测其它的, 主要还是看readme.txt和类文件中的注释.
分享到:
相关推荐
SpringMVC-Mybatis-Shiro-redis-master..............
redis-service_pubsub.rar。 springMVC集成spring-data-redis实现发布订阅。
基于SpringMVC Mybatis Shiro Redis 的权限管理系统,该系统已经部署到线上,线上访问地址:http://shiro.itboy.net,登录账号:admin 密码:sojson,,详细教程参考sojson.com/shiro
与springmvc4完美兼容的validation jar包集合,让程序员更加轻松的进行编程
SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- Hello...
基于SpringMVC、Mybatis、Redis、Freemarker的Shiro管理Demo源码的升级版 相关详细配置说明请参看 --> http://www.sojson.com/shiro
SpringMVC------从HelloWorld开始
SpringMVC4.2.4中文文档 PDF-高清带书签版本,内容可以复制,收藏了。
spring,springmvc,mybatits集成实例--后台分页查询,spring,springmvc,mybatits集成实例--后台分页查询,spring,springmvc,mybatits集成实例--后台分页查询
spring,springmvc,mybatits集成实例--多表查询, ssm框架 多表关联查询,spring,springmvc,mybatits集成实例--多表查询
springmvc-high-other-05.rar
springmvc-base-output-03.rar
springmvc-base-input-02.rar
springmvc-base-restful-04.rar
spring,springmvc,mybatits集成实例--增删查改,sql文件,ssm框架测试数据数据表employeer,spring,springmvc,mybatits集成实例--增删查改
SpringMVC-Spring-Mybatis-Freemarker整合
spring-4.3.0springmvc-4.3.0和mybatis-3.4.0整合jar包
springmvc4教程超权威--超详细.ppt
spring,springmvc,mybatits集成实例--增删查改,本文给出一个spring,springmvc,mybatits集成-增删查改示例的完整代码