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

          dwr 學(xué)習(xí)筆記

          Posted on 2008-07-17 15:17 G_G 閱讀(1718) 評(píng)論(0)  編輯  收藏 所屬分類: javascriptjsonjavaGeneral

          參考引用:
          使用說明: lib添加dwr.jar
          web.xml添加
          <?xml?version="1.0"?encoding="ISO-8859-1"?>
          <!DOCTYPE?web-app?PUBLIC
          ????"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"
          ????"http://java.sun.com/dtd/web-app_2_3.dtd"
          >
          <web-app?id="dwr">
          ??
          <display-name>DWR?(Direct?Web?Remoting)</display-name>
          ??
          <description>A?Simple?Demo?DWR</description>

          ??
          <servlet>
          ????
          <servlet-name>dwr-invoker</servlet-name>
          ????
          <display-name>DWR?Servlet</display-name>
          ????
          <description>Direct?Web?Remoter?Servlet</description>
          ????
          <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

          ????
          <!--?This?should?NEVER?be?present?in?live?-->
          ????
          <init-param>
          ??????
          <param-name>debug</param-name>
          ??????
          <param-value>true</param-value>
          ????
          </init-param>

          ??
          </servlet>
          ? <!-- 服務(wù)起來后 在地址中直接輸入 http://.../dwr 就可以查看對(duì)外提供的服務(wù)類 -->
          ??
          <servlet-mapping>
          ????
          <servlet-name>dwr-invoker</servlet-name>
          ????
          <url-pattern>/dwr/*</url-pattern>
          ??
          </servlet-mapping>

          </web-app>


          dwr.xml
          <?xml?version="1.0"?encoding="UTF-8"?>
          <!DOCTYPE?dwr?PUBLIC
          ????"-//GetAhead?Limited//DTD?Direct?Web?Remoting?1.0//EN"
          ????"http://www.getahead.ltd.uk/dwr/dwr10.dtd"
          >
          <dwr>
          ????
          <allow>
          ????????
          <!--?遠(yuǎn)程調(diào)用類?定義 updateItem,getItem?和?findItems?方法可用??-->
          ????????
          <create?creator="new"?javascript="CatalogDAO">
          ????????????
          <param?name="class"?value="com.ajaxlab.ajax.CatalogDAO"?/>
          ????????????
          <include?method="getItem"?/>
          ????????????
          <include?method="findItems"?/>
          ???????????
          <include?method="updateItem"?/>
          ????????</create>
          ????????
          ????????
          <!--?數(shù)據(jù)展現(xiàn)定義格式?(javascriot?json?格式)?
          ????????????此定義?id?name?description?為可見?
          ??????????????????price?隱藏?
          ????????????E.g?->?
          ????????????????{
          ??????????????????description:"中國制造.",?
          ??????????????????id:"產(chǎn)品-",?
          ??????????????????name:"新品-"
          ????????????????}
          ????????
          -->
          ????????
          <convert?converter="bean"?match="com.ajaxlab.ajax.Item">
          ????????????
          <param?name="include"
          ????????????????value
          ="id,name,description,formatted-?Price"?/>
          ????????
          </convert>
          ????
          </allow>
          </dwr>



          類說明
          bean Item:
          ? private String id = "";
          ? private String name = "";
          ? private String description = "";
          ? private int price = 0;
          ? get();set();


          dao
          ????public?Item?getItem(String?id)?{
          ????????Item?item?
          =?new?Item("產(chǎn)品-"+id);
          ????????item.setName(
          "新品-"+id);
          ????????item.setPrice(
          100);
          ????????item.setDescription(
          "中國制造.");
          ????????
          return?item;
          ????}

          ????
          public?List?findItems(String?expression)?{
          ????????List?list?
          =?new?ArrayList();
          ????????Item?item1?
          =?new?Item("產(chǎn)品-001");
          ????????item1.setName(
          "新品-001");
          ????????item1.setDescription(expression);
          ????????item1.setPrice(
          10);
          ????????Item?item2?
          =?new?Item("產(chǎn)品-002");
          ????????item2.setName(
          "新品-002");
          ????????item2.setDescription(expression);
          ????????item2.setPrice(
          15);
          ????????Item?item3?
          =?new?Item("產(chǎn)品-003");
          ????????item3.setName(
          "新品-003");
          ????????item3.setDescription(expression);
          ????????item3.setPrice(
          35);
          ????????list.add(item1);
          ????????list.add(item2);
          ????????list.add(item3);
          ????????
          return?list;

          ????}

          ?? /* html input text ->
          ??????? {
          ??? ??? ??? ? description:"中國制造.",
          ??? ??? ??? ? id:"1",
          ??? ??? ??? ? name:"劉凱毅"
          ??? ??? }
          ??? ??? return true ;
          ??? ???
          ???? */

          ??? public boolean updateItem(Item item ){
          ??? ??? if( item!=null && item.getName().equals("劉凱毅") )
          ??? ??? ??? return true;
          ??? ???
          ??? ??? return false ;
          ??? }



          js 方法:
          在 input 輸入->>
          method( !! )

          bean(id,name...)
          {id:1,name:'liukaiyi'}

          當(dāng)多參數(shù) 為 map
          {dd:'liu',aa:'gg'}

          js多參數(shù)
          class.method(
          ??? objectEval($("p00").value),
          ??? objectEval($("p01").value),
          reply0);


          展現(xiàn)頁:
          <html>
          <head>
          ??
          <title>DWR?Test</title>
          ??
          <!--?These?paths?use?..?so?that?they?still?work?behind?a?path?mapping?proxy.?The?fully?qualified?version?is?more?cut?and?paste?friendly.?-->
          ??
          <script?type='text/javascript'?src='/testDwr/dwr/interface/CatalogDAO.js'></script>
          ??
          <script?type='text/javascript'?src='/testDwr/dwr/engine.js'></script>
          ??
          <script?type='text/javascript'?src='/testDwr/dwr/util.js'></script>
          ??
          ??
          <script?type='text/javascript'>
          ? //輸入到方法中 參數(shù) 格式轉(zhuǎn)換
          ??
          function?objectEval(text){
          ????text?
          =?text.replace(/\n/g,?'?');
          ????text?
          =?text.replace(/\r/g,?'?');
          ????
          if?(text.match(/^\s*\{.*\}\s*$/))
          ????{
          ??????text?
          =?'['?+?text?+?'][0]';
          ????}
          ????
          return?eval(text);
          ??}
          ?
          ? //本例 alert 展現(xiàn)

          ??
          var?reply?=?function(data){
          ??????alert(dwr.util.toDescriptiveString(data,?
          2));
          ??}

          ??
          </script>


          </head>
          <body?>

          <li>
          ??findItems(????
          <input??type='text'??value='""'?id='p00'?/>??);
          ??
          <input?class='ibutton'?type='button'?onclick='CatalogDAO.findItems(objectEval($("p00").value),?reply);'?value='Execute'??/>

          </li>
          <li>
          ??getItem(????
          <input?class='itext'?type='text'?size='10'?value='""'?id='p10'?title='Will?be?converted?to:?java.lang.String'/>??);
          ??
          <input?class='ibutton'?type='button'?onclick='CatalogDAO.getItem(objectEval($("p10").value),?reply);'?value='Execute'??title='Calls?CatalogDAO.getItem().?View?source?for?details.'/>
          </li>


          <li>
          ? updateItem(???
          <input?class='itext'?type='text'?size='10'?value='{}'?id='p20'/>? );
          ? <input class='ibutton' type='button' onclick='CatalogDAO.updateItem(objectEval($("p20").value), reply);' value='Execute' />
          </li>

          </body></html>





          主站蜘蛛池模板: 小金县| 兖州市| 腾冲县| 罗平县| 灌南县| 平原县| 当雄县| 班戈县| 建水县| 周至县| 灵武市| 洛川县| 赤水市| 华安县| 和林格尔县| 万州区| 富裕县| 和政县| 齐河县| 墨玉县| 紫金县| 伊宁市| 宝丰县| 会宁县| 屯昌县| 清苑县| 婺源县| 礼泉县| 保德县| 绥化市| 红安县| 英吉沙县| 东乡县| 两当县| 鄂尔多斯市| 阳东县| 滨州市| 余江县| 三明市| 长阳| 城固县|