近来学习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 的权限管理系统,该系统已经部署到线上,线上访问地址:http://shiro.itboy.net,登录账号:admin 密码:sojson,,详细教程参考sojson.com/shiro
【标题】"SpringMVC-Mybatis-Shiro-redis-master" 涉及的是一个集成框架项目,这个项目集成了四个关键的技术组件:SpringMVC、MyBatis、Shiro和Redis。这些技术在现代Java Web开发中扮演着重要角色。 **SpringMVC**...
在Java开发领域,尤其是SSM(Spring、SpringMVC、MyBatis)框架的应用中,数据验证是非常关键的一环,确保了输入数据的正确性和一致性。`Validation`是Java世界中用于验证对象的有效性的一种机制,它使得我们可以...
《SpringMVC-Mybatis-Shiro-Redis:构建安全高效的Web应用》 在现代Web开发中,构建一个高效且安全的后端系统是至关重要的。本文将深入探讨一个基于SpringMVC、Mybatis、Shiro和Redis的Web应用架构,这四个组件共同...
SpringMVC是一个强大的Java web应用程序框架,用于处理HTTP请求和响应。它主要负责视图控制器的职责,使得业务逻辑...通过这种方式,你可以充分利用Redis的实时通信能力和SpringMVC的灵活性,构建出高效的分布式系统。
这些jar包通常包括`hibernate-validator`、`javax.validation-api`等,它们提供了验证框架的核心功能和规范接口。在项目中添加这些依赖后,Spring MVC就能识别并应用我们定义的验证注解。 配置Spring MVC以使用...
SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- HelloWorld ---- 代码 SpringMVC ---- Hello...
基于SpringMVC+Vue+element-ui开发的公司自动化办公OA系统源码+sql数据库+项目说明.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用...
spring,springmvc,mybatits集成实例--后台分页查询,spring,springmvc,mybatits集成实例--后台分页查询,spring,springmvc,mybatits集成实例--后台分页查询
Spring 提供了 Validation API 和 Hibernate Validator 实现,可以通过在模型对象的属性上添加注解来进行校验,如 @NotNull、@Size 等。这些验证规则在控制器处理请求时会被自动执行,如果验证失败,可以返回错误...
《SpringMVC-Mybatis-Shiro-Redis整合实践详解》 在现代Web开发中,SpringMVC、Mybatis、Shiro以及Redis等技术是构建高效、安全、可扩展的Web应用的重要组件。本文将深入探讨这些技术的集成与应用,以"SpringMVC-...
2. **创建Validator**:虽然"validation-api-1.1.0.cr1.jar"不包含具体的验证实现,但SpringMVC可以通过Hibernate Validator(一个实现JSR303的库)来创建验证器。SpringMVC会自动扫描并注册这些验证器。 3. **在...
spring,springmvc,mybatits集成实例--增删查改,sql文件,ssm框架测试数据数据表employeer,spring,springmvc,mybatits集成实例--增删查改
SpringMVC4.2.4是该框架的一个稳定版本,它包含了丰富的特性和改进,使得开发人员能够更高效、更灵活地开发Java Web应用。这份中文文档PDF是针对SpringMVC4.2.4的详细指南,对于中文环境下的开发者来说,是一份非常...
本资料"springmvc-high-other-05.rar"着重探讨了SpringMVC的一些高级特性和用法,特别是那些不太常见但对提升应用性能和可维护性至关重要的特性。 1. **POM.xml配置解析**:在"pom.xml"文件中,我们可以看到项目...
springmvc4教程超权威--超详细.ppt
SpringMVC注解工程(eclipse-jee-2020-12-R)
SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求-响应模型。作为一个成熟的MVC(Model-View-Controller)框架,SpringMVC为开发者提供了强大的功能,包括控制器的定义、视图的管理以及模型数据的处理...
本项目"springmvc-maven-webapp-helloworld"是基于SpringMVC、Maven、MyBatis、JUnit和MySQL的简单HelloWorld示例,旨在帮助初学者快速理解这些技术的集成与应用。 【描述】"springmvc+maven+mybatis+junit+mysql+...