概念
使用屬性表達式設置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);
}
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27120.html