一、CustomEditorConfigurer类
CustomEditorConfigurer可以读取实现java.beans.PropertyEditor接口的类,将字符串转为指定的类型。更方便的可以使用PropertyEditorSupport。PropertyEditorSupport实现PropertyEditor接口,必须重新定义setAsText。
public class Hello { private String message; private User user; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
自定义属性编辑器继承PropertyEditorSupport类,重写setAsText方法。
public class UserEditor extends PropertyEditorSupport{ @Override public void setAsText(String text) throws IllegalArgumentException { //类型为User的变量声明了自定义属性编辑器,其值规定为逗号分割的字符串 String[] arr = text.split(","); Integer age = new Integer(arr[1]); User user = new User(); user.setName(arr[0]); user.setAge(age); setValue(user); } }
bean配置
<bean id="configBean" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors"> <map> <!-- 类型为User的变量都通过UserEditor间接设值 --> <entry key="User"> <bean id="userEditor" class="UserEditor"/> </entry> </map> </property> </bean> <bean id="hello" class="Hello"> <property name="message" value="hello" /> <property name="user" value="chenjumin,20"/><!-- 类型为User的变量声明了自定义属性编辑器,其值规定为逗号分割的字符串 --> </bean>