码迷,mamicode.com
首页 > 编程语言 > 详细

spring mvc 自定义编辑器

时间:2014-08-11 14:52:02      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   使用   io   文件   for   

起始知识:

Java标准的PropertyEditor的核心功能是将一个字符串转换为一个Java对象,以便根据界面的输入或配置文件中的配置字符串构造出一个JVM内部的java对象。

如何注册自定义的属性编辑器:

1、实现PropertyEditor接口或者继承PropertyEditorSupport类

2、在Spring上下文中声明一个org.springframework.beans.factory.config.CustomEditorConfigurer的bean

<!--将bean1中的Date赋值2008-08-15,spring会认为2008-08-15是String,无法转换成Date,会报错!-->

<bean id="bean1" class="com.bjsxt.spring.Bean1">      
             <property name="dateValue">
                       <value>2008-08-15</value>
             </property>
</bean>
<!-- 于是定义属性编辑器 -->      
<bean id="customEditorConfigurer"           class="org.springframework.beans.factory.config.CustomEditorConfigurer">
           <property name="customEditors">
                 <map>  
                     <entry key="java.util.Date">           
                          <bean class="com.bjsxt.spring.UtilDatePropertyEditor">           
                              <!--干脆把format也注入,灵活处理格式-->
                              <property name="format" value="yyyy-MM-dd"/>
                             </bean>
                     </entry>
                 </map>
           </property>
</bean>

但是Java原生的PropertyEditory存在一下不足:

1、只能用于字符串和java对象的抓换,不适用于任意两个Java类型之间的转换。

2、对源对象和目标对象上下文信息(如注解,所在宿主类的结构等)不敏感,在类型转换时不能利用这些上下文信息实施高级转换逻辑。

有鉴于此,Spring 3.0核心模型中添加了一个通用的类型转换模块,类型转换模块位于org.springframework.core.convert中,Spring希望用这个类型转换体系替换Java标准的PropertyEditor。但由于历史原因,会同时支持两者。

ConversionService

它是Spring类型转换体系中核心接口,位于org.springframework.core.convert中,也是唯一一个接口。

可以利用ConversionServiceFactorybean在spring上下文中定义一个ConversionService。该factorybean提供了大量内置的转换器,同时也支持自定义转换器。

自定义转换器,可选择实现三者中任一种接口:

  • Converter<S,T>
  • GenericConverter
  • ConverterFactory

Spring mvc在支持新转换器框架同时,也支持JavaBeans的PropertyEditor,可以在控制器中使用@InitBinder添加自定义的编辑器,也可以通过WebBindingInitializer装配在全局范围内使用的编辑器。

加载顺序

那么,对于同一个类型对象来说,如果三个地方均配置了,该以哪个为主:

1、查询通过@Initbinder装配的自定义编辑器。

2、查询通过ConversionService装配的自定义转换器。

3、查询通过WebBindingInitializer装配的自定义编辑器。

spring mvc 自定义编辑器,布布扣,bubuko.com

spring mvc 自定义编辑器

标签:style   blog   color   java   使用   io   文件   for   

原文地址:http://www.cnblogs.com/beiyeren/p/3904529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!