一、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>