kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
          http://dev.csdn.net/article/62/62098.shtm

          http://www.chinaunix.net/jh/26/138463.html

             DynaBean是BeanUtils里的寶貝之一。有了動態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"));

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

                   但是因為他沒有car.getCarNo()這樣的函數,只能用car.get("carNo"),所以也就不支持JSTL里面<c: out value="{car.carNo}">這樣的語法,因為JSTL是默認轉回car.getCarNo()的。
          而且幾經討論,JSTL不支持 car.userFunction(),理由是不希望代碼里有java代碼:(

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

                 最后,如果car.set("carNo",null),會得到一個莫名其妙的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 2005-05-10 13:01 笨笨 閱讀(415) 評論(0)  編輯  收藏 所屬分類: J2EEALLJ2SE
          主站蜘蛛池模板: 库尔勒市| 天津市| 大埔县| 阿瓦提县| 巧家县| 卢湾区| 米泉市| 商河县| 雷州市| 浦北县| 高台县| 府谷县| 和平区| 米林县| 仁寿县| 谷城县| 老河口市| 宿松县| 沙坪坝区| 宜丰县| 珲春市| 彩票| 白玉县| 临澧县| 寿阳县| 达日县| 晋江市| 秀山| 衡山县| 普洱| 乌拉特中旗| 祁门县| 吉木萨尔县| 五莲县| 礼泉县| 同德县| SHOW| 达拉特旗| 白银市| 阳曲县| 宣武区|