`
朱秋旭
  • 浏览: 229936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

说说Spring中的WebDataBinder

阅读更多

还是老规矩,开门见山。 我们开发的时候经常会从html,jsp中将参数传到后台,可是经常会遇到的一种情况就是传过来的数据到后台要组装成一种对象的格式,最常见的就是enum类型了。这时候spring提供的@initBinder这个annotation 就发挥了很大的作用。



 

众所周知spring可以自动将request中的数据对应到对象的每个property,会自动的bind 一些simple data (Strings, int, float, etc.) 对应到 你所要求的Object中,可是如果面对复杂的对象,那就需要借助于PropertyEditor 来帮助你完成复杂对象的对应关系,这个借口提供了两个方法,将一个property 转成string getAsText(), 另外一个方法是将string类型的值转成property对应的类型。使用起来也很简单,来个例子:

 

@InitBinder
public void bindingPreparation(WebDataBinder binder) {
  DateFormat dateFormat = new SimpleDateFormat("MMM d, YYYY");
  CustomDateEditor orderDateEditor = new CustomDateEditor(dateFormat, true);
  binder.registerCustomEditor(Date.class, orderDateEditor);
}

 

这样同样面临一个问题,如果我有两个变量,变量名不一样,处理的规则也不一样,但是他们都是Date.class 类型, 这可怎么破。比如:



 

贴心的spring,提供了一种重载的方法。 for example:

 

@InitBinder
public void bindingPreparation(WebDataBinder binder) {
  DateFormat dateFormat1 = new SimpleDateFormat("d-MM-yyyy");
  CustomDateEditor orderDateEditor = new CustomDateEditor(dateFormat1, true);
  DateFormat dateFormat2 = new SimpleDateFormat("MMM d, YYYY");
  CustomDateEditor shipDateEditor = new CustomDateEditor(dateFormat2, true);
  binder.registerCustomEditor(Date.class, "orderDate", orderDateEditor);
  binder.registerCustomEditor(Date.class, "shipDate", shipDateEditor);
}

 

 

其实只要为每个变量绑定一个不同的Editor就可以了,对于不同的变量进行不同的处理。这样就能够方便的完成request 和 property 之间的binder了。

 

以上的两个例子仅供抛砖引玉的作用,更多的spring内容还请大家自己不断探索,个人非常喜欢spring,也会不断发表新的spring文章。

 

 
  • 大小: 15.5 KB
  • 大小: 24.3 KB
3
0
分享到:
评论
4 楼 semmy 2014-09-28  
这是旧版本的Spring MVC这样处理,新的SpringMVC应该是用converter接口
3 楼 nuoyan139 2014-09-28  
                                 
2 楼 朱秋旭 2014-09-28  
white_crucifix 写道
前面说的enum后面说的date??

呵呵,是我没有说清楚,前面是我在搞enum 的时候遇到的,后面说date是因为我觉得这个例子很好,一般enum很少同时出现两个吧
1 楼 white_crucifix 2014-09-28  
前面说的enum后面说的date??

相关推荐

    Spring中WebDataBinder使用详解

    在上面的示例代码中,我们使用@InitBinder注解来配置Web数据绑定,并将自定义的验证类注册到WebDataBinder中。 registerCustomEditor()方法 在使用WebDataBinder时,我们可以使用registerCustomEditor()方法来注册...

    spring自己说说

    标题“spring自己说说”可能是指一篇关于Spring框架的个人见解或经验分享的文章。由于描述为空,我们只能根据标题和标签来推测文章可能涉及的内容。标签包括“源码”和“工具”,这提示我们这篇文章可能会深入到...

    spring 源码中文注释

    Spring框架是Java开发中最广泛应用的轻量级框架之一,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。这份"spring 源码...

    spring源码注释中文

    Spring 框架是 Java 开发中的一个核心组件,它为构建可维护、模块化和松耦合的应用程序提供了一种强大的方式。Spring 源码注释中文版的提供,使得开发者能够更加深入地理解 Spring 的工作原理,无需经过复杂的编译...

    Spring-5.0.0-官方中文文档

    Spring框架是Java开发中不可或缺的重要组成部分,特别是在企业级应用领域,它的影响力无处不在。Spring 5.0.0作为其重要版本,引入了诸多新特性和改进,旨在提升开发效率,增强应用性能,以及更好地适应现代软件开发...

    spring6pdf详细讲解

    在 Spring 中,手写 Spring 框架是一种方式,使得开发者可以深入了解 Spring 框架的内部机理。 Spring 框架提供了多种方式来开发企业级应用程序,使得开发者可以快速和方便地开发和维护应用程序。

    spring 5 中文注释源码.rar

    新版 spring 5 中文注释源码,关键源码位置都有中文注释,方便阅读源码 spring源码解读 Spring框架是由于软件开发的复杂性而创建的...从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效...通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理大数据量的应用场景非常有价值。

    Spring5中文文档

    在表达式语言(SpEL)章节中,介绍了Spring表达式语言的基础知识和功能特性,以及如何在Bean定义中使用SpEL表达式进行求值和语言参考。 测试章节提供了单元测试和集成测试的示例和最佳实践,包括JDBC测试和使用...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    spring中文开发手册

    spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    在构建分布式系统时,Spring Cloud Gateway 作为微服务架构中的边缘服务或 API 网关,扮演着至关重要的角色。它负责路由请求到相应的微服务,并可以提供过滤器功能,如限流、熔断等。而Spring Security 则是 Java ...

    Javaspring中的spring-core-5.2.9.RELEASE.jar

    Javaspring中的spring-core-5.2.9.RELEASE.jar

    Spring中文文档.pdf

    Spring系列项目中还包括Spring Boot、Spring Security、Spring Data、Spring Cloud和Spring Batch等,这些都是基于Spring Framework构建的,每个项目都有自己的源代码存储库和文档。开发者在使用时应根据实际需要...

    spring2.0升级到spring3.0.5的开发包

    Spring框架是Java应用程序开发中的一个核心组件,它提供了一个丰富的IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能,使得开发者能够更方便地管理对象和实现模块化...

    Spring.net 中文帮助文档 第二版

    这个版本的帮助文档,修正了第一个版本中部分,连接打不开的问题。 Spring.net 是由Java 版的 Spring框架得来的,虽然说不是很流行,但是还是值行学习的。 软件格式:CHM

    spring-web-2.5.jar

    org.springframework.web.bind.WebDataBinder.class org.springframework.web.bind.annotation.InitBinder.class org.springframework.web.bind.annotation.ModelAttribute.class org.springframework.web.bind....

    spring-boot中文API文档

    Spring Boot是Java开发中的一个流行框架,它简化了创建独立的、生产级别的基于Spring的应用程序。这个"spring-boot-中文参考手册.pdf"是为开发者提供的一份详细且全面的中文API文档,旨在帮助中文使用者更好地理解和...

    spring中的自定义属性编辑器

    在Spring框架中,属性编辑器(PropertyEditor)扮演着至关重要的角色。它们是JavaBeans规范的一部分,用于在Java对象和其字符串表示之间进行转换。在Spring中,我们可以通过自定义属性编辑器来处理特定类型的值,...

    spring4.x中的jar包下载,spring4.0.6下载,spring最新稳定版jar包下载

    spring4.x中的jar包下载,spring4.0.6下载,spring最新稳定版jar包下载 http://maven.springframework.org/release/org/springframework/spring/ 这个链接中有各种稳定版的jar包下载 目前官网上大部分都要maven下载

Global site tag (gtag.js) - Google Analytics