JavaBean 的介面java.beans.PropertyEditor提供將字串值對應成非String類型的方法(其直接實作類別為PropertyEditorSupper):1、getAsText():返回一個屬性的字串2、setAsText(String text):將傳遞進來的字串賦給bean的屬性3、URLEditor:將字串與java.net.URL相互交換4、ClassEditor:使用包含全稱類名的字串設定java.langClass屬性5、CustomDateEditor:使用某種java.text.DateFormat對象將字串設定給java.util.Date屬性6、FileEditor:使用包含檔案路徑的字串設定java.io.File屬性7、LocaleEditor:使用包含地區資訊(如“en_US”)的字串設定java.util.Local屬性8、StringArrayPropertyEditor:將一個包含逗號的string轉換成string數字屬性9、StringTrimmerEditor:自動修正字串屬性,可選擇將字串轉換變成nullPersonServiceBean.javapublic class PersonServiceBean {private String name;private String sex;private Integer age;private Date birth;//家庭住址private Address homeAddress;//公司地址private Address comAddress;public Address getHomeAddress() {return homeAddress;}public Address getComAddress() {return comAddress;}public void setHomeAddress(Address homeAddress) {this.homeAddress = homeAddress;}public void setComAddress(Address comAddress) {this.comAddress = comAddress;}public PersonServiceBean() {super();// TODO Auto-generated constructor stub}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public PersonServiceBean(String name, String sex, Integer age, Date birth) {super();this.name = name;this.sex = sex;this.age = age;this.birth = birth;}@Overridepublic String toString() {return "PersonServiceBean [name=" + name + ", sex=" + sex + ", age="+ age + ", birth=" + birth + "]";}}Address.javapublic class Address {private String province;private String city;private String street;private String zipCode;public Address() {super();// TODO Auto-generated constructor stub}public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getStreet() {return street;}public void setStreet(String street) {this.street = street;}public String getZipCode() {return zipCode;}public void setZipCode(String zipCode) {this.zipCode = zipCode;}public Address(String province, String city, String street, String zipCode) {super();this.province = province;this.city = city;this.street = street;this.zipCode = zipCode;}@Overridepublic String toString() {return "Address [province=" + province + ", city=" + city + ", street="+ street + ", zipCode=" + zipCode + "]";}}beans.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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" ><bean id="personServiceBean" class="cn.csdn.service.PersonServiceBean"><property name="name"><value>老王</value></property><property name="sex"><value>女</value></property><property name="age"><value>22</value></property><!-- 出生日期 ref屬性 引用已存在的id的名稱 --><property name="birth" ><ref bean="date"/></property> <property name="homeAddress" ><bean class="cn.csdn.service.Address"><property name="province"><value>北京</value></property><property name="city"><value>北京市</value></property><property name="street"><value>海澱區0008街道</value></property><property name="zipCode"><value>111111</value></property></bean></property><property name="comAddress" ><value>河南省.商丘市.梁園區0008街道.100000</value></property></bean><bean id="date" class="java.util.Date"></bean><!-- 定製編輯器後處理 --><bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer"><property name="customEditors"><map><!-- key指向的是:需要轉換的類 --><entry key="cn.csdn.service.Address"><!-- value指向的是實現編輯器的類 --><bean class="cn.csdn.editor.AddressEditor"></bean></entry></map></property></bean></beans>AddressEditor.javapublic class AddressEditor extends PropertyEditorSupport{public void setAsText(String text) throws IllegalArgumentException{System.out.println("===========轉換實現==================");//java實現轉化if("".equals(text) || text!=null){//拆分String args[]=text.split("\\.");if(args.length>3){Address address=new Address();address.setProvince(args[0]);address.setCity(args[1]);address.setStreet(args[2]);address.setZipCode(args[3]);setValue(address);}else{this.setAsText(null);}}else{this.setAsText(null);}}}測試方法@Testpublic void test() {//第一步:擷取應用內容物件ApplicationContext ac=new ClassPathXmlApplicationContext(new String[]{"beans.xml"});//第二步:根據應用內容物件擷取bean的執行個體對象PersonServiceBean p= (PersonServiceBean) ac.getBean("personServiceBean");System.out.println(p.getHomeAddress().toString());System.out.println("利用自己定製的屬性編輯器實現");System.out.println(p.getComAddress().toString());}