spring-自定义属性编辑器

作用:根据输入的内容转换为指定的格式

如 安徽省-合肥市-高新区 转换到下列对象的属性中

/**地址
*/
class Address{
  String province;
  String city;
  String district;
}

实现步骤

1》继承类 PropertyEditorSupport

复制代码
public class AddressPropertyEditor extends PropertyEditorSupport {
    public void setAsText(String text) {
        try {
            String[] adds = text.split("-");

            Address address = new Address();
            address.setProvince(adds[0]);
            address.setCity(adds[1]);
            address.setDistrict(adds[2]);
            this.setValue(address);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
复制代码

2》编写xml类 ApplicationContext.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    <bean id="customer" class="xxx.Customer">
        <property name="name" value="fred" />
        <property name="address" value="安徽省-合肥市-高新区" />
    </bean>
    <bean id="customEditorConfigurer"
        class="org.springframework.beans.factory.config.CustomEditorConfigurer">
        <property name="customEditors">
            <map>
                <entry key="exa.ydoing.spring.Address">
                    <bean class="xxx.AddressPropertyEditor" />
                </entry>
            </map>
        </property>
    </bean>
</beans>
复制代码

3.编写测试类

复制代码
public class Test
{
    public static void main( String[] args )
    {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");
        Customer c = ctx.getBean("customer", Customer.class);
        System.out.println(c.getAddress().toString());

    }
}
复制代码

 

posted @   哼自己调  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示