概念
使用属性表达式设置Java Bean的属性值
属性表达式格式与Java编程的表达式类似使用[n]表示数组引用表示对象引用
例如
name表示Java Bean的name属性
parentname表示Java Bean的parent属性的name属性
parentparentname表示Java Bean的parent属性的parent属性的name属性
children[]name表示Java Bean的children属性的第个元素的name属性
使用属性表达式定位到指定属性后根据属性的类型将输入值转换成该属性值完成赋值
使用
orgzjulhselProperty的静态方法setProperty实现对属性的赋值
public static void setProperty(Object bean String name String[] values);
参数:
bean
Java Bean对象
name
Java Bean的属性表达式
values
name指定的属性的值型如T[]的数组values跟T[]一一对应其他属性类型使用values[]如果属性为null会自动初始化为相应类型的对象
例子
参考orgzjulhselPerson的main方法可以直接运行
扩展
实现orgzjulhselIConvert接口可以扩展自定义对象的转换方法参考orgzjulhselProperty的静态属性CONVERTS
应用
可以用于JEE的表单数据到Java Bean属性值的自动映射比如表单订单的产品列表到Java Bean的ArrayList<Product> products自动映射省去传统的requestgetParameter方法和数据类型转换的麻烦可以通过下面代码实现绝大部分表单值的自动映射
Object bean = formBean; // 保存表单数据的对象
Enumeration<String> iter = (Enumeration<String>)requestgetParameterNames();
while(iterhasMoreElements())
{
String key = iternextElement();
String[] values = reqgetParameterValues(key);
PropertysetProperty(bean key values);
}