首页 > 全部内容 > 编程 > spring4.3.11注入Date的属性编辑 器无效的解决方法
2017
09-15

spring4.3.11注入Date的属性编辑 器无效的解决方法

注意:

4.3.11的org.springframework.beans.factory.config.CustomEditorConfigurer类中customEditors为Map<Class<?>, Class<? extends PropertyEditor>>,属性值为Class类型,所以注入时会报错.
官方文档中有两种注入方法
1:
//属性编辑类

package example; 
public class ExoticTypeEditor extends PropertyEditorSupport 
{ 
    public void setAsText(String text) 
    { 
      setValue(new ExoticType(text.toUpperCase())); 
    } 
}

//配置

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
 <property name="customEditors">
 <map>
 <entry key="example.ExoticType" value="example.ExoticTypeEditor"/>
 </map>
 </property>
 </bean>

2:
//编辑器注册类

package com.foo.editors.spring;
 public final class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar 
{
 public void registerCustomEditors(PropertyEditorRegistry registry) 
{ 
//注册编辑器实例
 registry.registerCustomEditor(ExoticType.class, new ExoticTypeEditor());
 } 
}

//配置

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
 <property name="propertyEditorRegistrars"> 
<list> <ref bean="customPropertyEditorRegistrar"/>
 </list> 
</property>
 </bean>
 <bean id="customPropertyEditorRegistrar" class="com.foo.editors.spring.CustomPropertyEditorRegistrar"/>

4.0之后就不能再<entry></entry>里面写bean了。
下面是文档里的示例:

<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
 <entry key="java.util.Date" value="mypackage.MyCustomDateEditor"/> 
<entry key="mypackage.MyObject" value="mypackage.MyObjectEditor"/>
</map>
</property>
</bean>

意思是自定义的编辑器放在 value里面才可以。
至于后面的属性,好像不支持了。

最后编辑:
作者:Null
这个作者貌似有点懒,什么都没有留下。