posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Jakarta Commons BeanUtils 學(xué)習(xí)

          Posted on 2007-08-10 10:36 G_G 閱讀(1267) 評論(0)  編輯  收藏 所屬分類: Jakarta Commons
          參考:http://www.duduwolf.com/wiki/2007/296.html
          ????? http://www.chinaitpower.com/A/2005-07-03/150232.html

          1)普通的Bean處理? 不管是什么Set參數(shù)為3個 ( 對象本身, 屬性名或?qū)傩詢?nèi)位置, 值 ) //list的add有點(diǎn)特別
          ??? ??? ??? ??? ? ??? ??? ? Get
          參數(shù)為2個( 對象本身, 屬性名或?qū)傩詢?nèi)位置 )
          ??
          ????????Employee?em?=?new?Employee();? //String name; String[] ss;? Map map; List list;
          ????????BeanUtils.setProperty(em,
          "name","liukaiyi");? //String set
          ????????BeanUtils.setProperty(em,
          "ss",new?String[]{"1","2","3"}); //String[] set
          ??????? ?? BeanUtils.setProperty(em,"ss[2]","google");? //String[2] set

          ????????BeanUtils.setProperty(em,
          "map",new?HashMap());?? //Map set?
          ????????????BeanUtils.setProperty(em,"map(key)","value");? //Map.put(Key,Value)
          ????????????
          ????????BeanUtils.setProperty(em,
          "list",new?ArrayList(?Arrays.asList(?new?Object[20]?)?)); //List有點(diǎn)特別
          ????????????BeanUtils.setProperty(em,"list[0]","list");?????? //不可以直接添加???
          ????????????
          ????????BeanUtils.setProperty(em,
          "avg","23");?????? //int set
          ????????????????
          ????????
          ????????System.out.println(?BeanUtils.getSimpleProperty(em,
          "name")?);???
          ????????System.out.println(?BeanUtils.getProperty(em,"ss[2]")?);
          ????????System.out.println(?BeanUtils.getProperty(em,"map(key)")?);
          ????????
          ????????System.out.println(?BeanUtils.getProperty(em,
          "list[0].class")?);? // 取的是 ==list.get(0).getClass()
          ????????
          ????????System.out.println(?BeanUtils.getProperty(em,
          "avg")?);?

          2)動態(tài)屬性
          ?//定義動態(tài)屬性集
          ?DynaProperty[]?props?=?new?DynaProperty[]{
          ????
          new?DynaProperty("address",?java.util.Map.class),
          ????
          new?DynaProperty("subordinate",?mypackage.Employee[].class),
          ????
          new?DynaProperty("firstName",?String.class),
          ????
          new?DynaProperty("lastName",??String.class)
          ??????};
          ?
          //創(chuàng)建動態(tài)類來設(shè)定動態(tài)屬性值
          ????BasicDynaClass?dynaClass?=?new?BasicDynaClass("employee",?null,?props);
          ??? DynaBean?employee?
          =?dynaClass.newInstance();
          ????employee.set(
          "address",?new?HashMap());
          ????employee.set(
          "subordinate",?new?mypackage.Employee[0]);
          ????employee.set(
          "firstName",?"Fred");
          ????employee.set(
          "lastName",?"Flintstone");

          //也可以同上一樣 提供統(tǒng)一 的Get Set 還是 字符操作 ^o^? 哈哈
          ??? ???? BeanUtils.setProperty(bean,"address",new HashMap());
          ??? ??? ???? BeanUtils.setProperty(bean,"address(ads1)","江西");
          ??? ??? ?BeanUtils.setProperty(bean,"name","liu");
          ??? ??? ?BeanUtils.setProperty(bean,"subordinate",new String[3]);
          ??? ??? ???? BeanUtils.setProperty(bean,"subordinate[1]","heha");
          ??? ??? ?System.out.println(? BeanUtils.getProperty(bean,"address(ads1)") );
          ??? ??? ?System.out.println(? BeanUtils.getProperty(bean,"name") );
          ??? ??? ?System.out.println(? BeanUtils.getProperty(bean,"subordinate[1]") );

          3)JDBC 擴(kuò)展
          ?Connection?conn?=?;
          ????Statement?stmt?
          =?conn.createStatement();
          ????ResultSet?rs?
          =?stmt.executeQuery
          ????(
          "select?accountid,?name?from?customers");
          ????Iterator?rows?
          =?(new?ResultSetDynaClass(rs)).iterator();? //ResultSetDynaClass(java.sql.ResultSet resultSet)
          ????while?(rows.hasNext())?{
          ?
          //利用動態(tài)bean進(jìn)行輸出
          ????DynaBean?row?=?(DynaBean)?rows.next();?? //連實(shí)體Bean都可以不要了?
          ??? ??? BeanUtils.copyProperties( MyBean ,row );? //? bean<--dynaBean 就這樣去得到值
          ^o^?
          ??? ?? ?? MyBean.get
          Accountid();? ....???????????
          ????}
          ????rs.close();
          ????stmt.close();

          4)HttpServletRequest 擴(kuò)展
          ????HttpServletRequest?request?=?;
          ????MyBean?bean?
          =?;
          ????HashMap?map?
          =?new?HashMap();
          ????Enumeration?names?
          =?request.getParameterNames();
          ????
          while?(names.hasMoreElements())?{
          ??????String?name?
          =?(String)?names.nextElement();
          ??????map.put(name,?request.getParameterValues(name));
          ????}
          ????BeanUtils.populate(bean,?map);
          //bean<--map? struts好象是就用這個 Form


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 鄂托克前旗| 易门县| 黎平县| 社旗县| 青川县| 惠水县| 敦煌市| 远安县| 汤阴县| 呼伦贝尔市| 高雄市| 桃源县| 河西区| 车致| 澄迈县| 任丘市| 宁强县| 诸暨市| 阿勒泰市| 龙岩市| 石棉县| 江达县| 乡宁县| 平潭县| 祁阳县| 栾川县| 汤阴县| 高青县| 张家界市| 道孚县| 阿勒泰市| 通州区| 岐山县| 广东省| 无棣县| 保定市| 镇康县| 鄢陵县| 霍城县| 自治县| 鄱阳县|