<!-- 自定义编辑器配置器 --> <bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <!-- 自定义编辑器集 --> <property name="customEditors"> <map> <entry key="cn.itcast.spring.scatter.Address"> <bean class="cn.itcast.spring.editor.AddressEditor"/> </entry> </map> </property> </bean> <bean id="scatter" class="cn.itcast.spring.scatter.Scatter"> <property name="comAddress"> <bean class="cn.itcast.spring.scatter.Address"> <property name="province" value="jilin"/> <property name="city" value="cc"/> <property name="street" value="${jdbc.url}"/> </bean> </property> <property name="homeAddress"> <value>jilin.cc.renmin.100000</value> </property> </bean>
public class Scatter { private Address comAddress; // 公司住址 private Address homeAddress; // 家庭住址 public Address getComAddress() { return comAddress; } public void setComAddress(Address comAddress) { this.comAddress = comAddress; } public Address getHomeAddress() { return homeAddress; } public void setHomeAddress(Address homeAddress) { this.homeAddress = homeAddress; } }
public class AddressEditor extends PropertyEditorSupport { public void setAsText(String text) throws IllegalArgumentException { if (text != null && text.length() > 0) { String[] ss = text.split("\\."); if(ss.length>3) { Address a = new Address(); a.setProvince(ss[0]); a.setCity(ss[1]); a.setStreet(ss[2]); a.setZipCode(ss[3]); setValue(a); } else { setValue(null); } } else { setValue(null); } } }