DynaBean是BeanUtils里的寶貝之一。有了動(dòng)態(tài)Bean,就不用寫那么多VO出來了,特別那些只是為了和View交互而存在的bean,i hate Form Bean。
               DynaBean的用法很簡單,特別是有了LazyBynaBean之后.
                   DynaBean car = new LazyDynaBean();
                   car.set("carNo",1);
                   car.set("owner","張三");

                   out.print(car.get("carNo"));

           

                   看著像一個(gè)map,只不過多了反射的功能,所以支持那些使用反射來獲取屬性的場合。

                   但是因?yàn)樗麤]有car.getCarNo()這樣的函數(shù),只能用car.get("carNo"),所以也就不支持JSTL里面<c: out value="{car.carNo}">這樣的語法,因?yàn)镴STL是默認(rèn)轉(zhuǎn)回car.getCarNo()的。
          而且?guī)捉?jīng)討論,JSTL不支持 car.userFunction(),理由是不希望代碼里有java代碼:(

                   因此,還是寫<%=car.get("carNo")>好了,如果是陷在JSTL的一個(gè)循環(huán)結(jié)構(gòu)里,就要用從pageContext里面把bean拿出來,
                  又或者自己寫的tag,幸虧也很簡單,用BeanUtils.getProperty(bean,property)函數(shù)就可以了,
                  又或者,用Velocity和Freemarker。

                 最后,如果car.set("carNo",null),會(huì)得到一個(gè)莫名其妙的Object對象,如果要使它為Null,需要先定義他的類型。
                 因此,對于可能為Null的列,需要用LazyClass定義類型,幸虧也很Lazy, 不可能為Null的值可以不管。

                LazyDynaClass lc = new LazyDynaClass();
                lc.add("owner",String.class); // 指定null converter String
                DynaBean car = new LazyDynaBean(lc);
                car.set("carNo",1);
                car.set("owner",null);


          posted on 2008-04-24 13:15 caihaibo 閱讀(177) 評論(0)  編輯  收藏 所屬分類: ORM

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 灯塔市| 凯里市| 博客| 南开区| 神木县| 定安县| 卢龙县| 龙井市| 商都县| 乳山市| 陇川县| 达日县| 虎林市| 南靖县| 嵊州市| 建瓯市| 永康市| 鄂托克旗| 临泉县| 乾安县| 墨江| 道孚县| 上高县| 哈巴河县| 榆林市| 三明市| 黎城县| 嘉义县| 连南| 桃江县| 西青区| 虹口区| 紫金县| 贵德县| 德兴市| 修水县| 增城市| 平塘县| 镇原县| 巴马| 同德县|