`
b_l_east
  • 浏览: 639347 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SpringMVC之DataBinding和Validation--Validator,PropertyEditor,Converter,Formatter

 
阅读更多

近来学习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和类文件中的注释.

分享到:
评论
1 楼 dxqrr 2015-01-12  
总结的不错

相关推荐

    SpringMVC-Mybatis-Shiro-redis-0.2-master

    基于SpringMVC Mybatis Shiro Redis 的权限管理系统,该系统已经部署到线上,线上访问地址:http://shiro.itboy.net,登录账号:admin 密码:sojson,,详细教程参考sojson.com/shiro

    SpringMVC-Mybatis-Shiro-redis-master

    【标题】"SpringMVC-Mybatis-Shiro-redis-master" 涉及的是一个集成框架项目,这个项目集成了四个关键的技术组件:SpringMVC、MyBatis、Shiro和Redis。这些技术在现代Java Web开发中扮演着重要角色。 **SpringMVC**...

    Validation3个jia包 validation-api,hibernate-validator

    在Java开发领域,尤其是SSM(Spring、SpringMVC、MyBatis)框架的应用中,数据验证是非常关键的一环,确保了输入数据的正确性和一致性。`Validation`是Java世界中用于验证对象的有效性的一种机制,它使得我们可以...

    SpringMVC-Mybatis-Shiro-redis

    《SpringMVC-Mybatis-Shiro-Redis:构建安全高效的Web应用》 在现代Web开发中,构建一个高效且安全的后端系统是至关重要的。本文将深入探讨一个基于SpringMVC、Mybatis、Shiro和Redis的Web应用架构,这四个组件共同...

    springMVC集成spring-data-redis

    SpringMVC是一个强大的Java web应用程序框架,用于处理HTTP请求和响应。它主要负责视图控制器的职责,使得业务逻辑...通过这种方式,你可以充分利用Redis的实时通信能力和SpringMVC的灵活性,构建出高效的分布式系统。

    springmvc4与hibernate validation校验器完全兼容jar包

    这些jar包通常包括`hibernate-validator`、`javax.validation-api`等,它们提供了验证框架的核心功能和规范接口。在项目中添加这些依赖后,Spring MVC就能识别并应用我们定义的验证注解。 配置Spring MVC以使用...

    SpringMVC ---- HelloWorld ---- 代码

    SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- Hello...

    基于SpringMVC+Vue+element-ui开发的公司自动化办公OA系统源码+sql数据库+项目说明.zip

    基于SpringMVC+Vue+element-ui开发的公司自动化办公OA系统源码+sql数据库+项目说明.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用...

    spring,springmvc,mybatits集成实例--后台分页查询

    spring,springmvc,mybatits集成实例--后台分页查询,spring,springmvc,mybatits集成实例--后台分页查询,spring,springmvc,mybatits集成实例--后台分页查询

    springmvc-base-input-02.rar

    Spring 提供了 Validation API 和 Hibernate Validator 实现,可以通过在模型对象的属性上添加注解来进行校验,如 @NotNull、@Size 等。这些验证规则在控制器处理请求时会被自动执行,如果验证失败,可以返回错误...

    SpringMVC-Mybatis-Shiro-redis-0.2_baichengzhou.tar.gz

    《SpringMVC-Mybatis-Shiro-Redis整合实践详解》 在现代Web开发中,SpringMVC、Mybatis、Shiro以及Redis等技术是构建高效、安全、可扩展的Web应用的重要组件。本文将深入探讨这些技术的集成与应用,以"SpringMVC-...

    validation-api-1.1.0.cr1.jar

    2. **创建Validator**:虽然"validation-api-1.1.0.cr1.jar"不包含具体的验证实现,但SpringMVC可以通过Hibernate Validator(一个实现JSR303的库)来创建验证器。SpringMVC会自动扫描并注册这些验证器。 3. **在...

    spring,springmvc,mybatits集成实例--增删查改,sql文件

    spring,springmvc,mybatits集成实例--增删查改,sql文件,ssm框架测试数据数据表employeer,spring,springmvc,mybatits集成实例--增删查改

    SpringMVC4.2.4中文文档 PDF-高清带书签版本

    SpringMVC4.2.4是该框架的一个稳定版本,它包含了丰富的特性和改进,使得开发人员能够更高效、更灵活地开发Java Web应用。这份中文文档PDF是针对SpringMVC4.2.4的详细指南,对于中文环境下的开发者来说,是一份非常...

    springmvc-high-other-05.rar

    本资料"springmvc-high-other-05.rar"着重探讨了SpringMVC的一些高级特性和用法,特别是那些不太常见但对提升应用性能和可维护性至关重要的特性。 1. **POM.xml配置解析**:在"pom.xml"文件中,我们可以看到项目...

    springmvc4教程超权威--超详细.ppt

    springmvc4教程超权威--超详细.ppt

    SpringMVC注解工程(eclipse-jee-2020-12-R)

    SpringMVC注解工程(eclipse-jee-2020-12-R)

    SpringMVC------从HelloWorld开始

    SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求-响应模型。作为一个成熟的MVC(Model-View-Controller)框架,SpringMVC为开发者提供了强大的功能,包括控制器的定义、视图的管理以及模型数据的处理...

    springmvc-maven-webapp-helloworld 源码

    本项目"springmvc-maven-webapp-helloworld"是基于SpringMVC、Maven、MyBatis、JUnit和MySQL的简单HelloWorld示例,旨在帮助初学者快速理解这些技术的集成与应用。 【描述】"springmvc+maven+mybatis+junit+mysql+...

Global site tag (gtag.js) - Google Analytics