spring自定义实现PropertyEditor

2019-07-06  本文已影响0人  xzz4632
1. 继承PropertyEditorSupport并重写相关方法

示例:

import java.beans.PropertyEditorSupport;

public class AddressTypeEditor1 extends PropertyEditorSupport {

    /**
     * 通过给定的字符串设置属性值, 如果字符串格式不正确, 可以抛出异常
     */
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        setValue(new Address(text));
    }

    /**
     * 设置或改变被编辑的对象
     */
    @Override
    public void setValue(Object value) {
        super.setValue(value);
    }

}
2. 注册自定义的属性编辑器

使用org.springframework.beans.factory.config.CustomEditorConfigurer进行注册, 这是一个BeanFactoryPostProcessor.

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
        <property name="customEditors">
            <map>
                <entry key="com.xzz.chapter01.section16.test01.Address" value="com.xzz.chapter01.section16.test01.AddressTypeEditor1"></entry>
            </map>
        </property>
    </bean>

其中:
key为被转换的类的全限定类名.
value为自定义的属性编辑器的全限定类名.

3. 使用
<bean id="person" class="com.xzz.chapter01.section16.test01.Person">
        <property name="addr" value="深圳"></property>
    </bean>

此时的value会转换为其对应的对象.

上一篇 下一篇

猜你喜欢

热点阅读