<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    dwr 學習筆記

    Posted on 2008-07-17 15:17 G_G 閱讀(1716) 評論(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>
    ? <!-- 服務起來后 在地址中直接輸入 http://.../dwr 就可以查看對外提供的服務類 -->
    ??
    <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>
    ????????
    <!--?遠程調用類?定義 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>
    ????????
    ????????
    <!--?數據展現定義格式?(javascriot?json?格式)?
    ????????????此定義?id?name?description?為可見?
    ??????????????????price?隱藏?
    ????????????E.g?->?
    ????????????????{
    ??????????????????description:"中國制造.",?
    ??????????????????id:"產品-",?
    ??????????????????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("產品-"+id);
    ????????item.setName(
    "新品-"+id);
    ????????item.setPrice(
    100);
    ????????item.setDescription(
    "中國制造.");
    ????????
    return?item;
    ????}

    ????
    public?List?findItems(String?expression)?{
    ????????List?list?
    =?new?ArrayList();
    ????????Item?item1?
    =?new?Item("產品-001");
    ????????item1.setName(
    "新品-001");
    ????????item1.setDescription(expression);
    ????????item1.setPrice(
    10);
    ????????Item?item2?
    =?new?Item("產品-002");
    ????????item2.setName(
    "新品-002");
    ????????item2.setDescription(expression);
    ????????item2.setPrice(
    15);
    ????????Item?item3?
    =?new?Item("產品-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'}

    當多參數 為 map
    {dd:'liu',aa:'gg'}

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


    展現頁:
    <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'>
    ? //輸入到方法中 參數 格式轉換
    ??
    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 展現

    ??
    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>





    主站蜘蛛池模板: 亚洲天堂免费在线| 动漫黄网站免费永久在线观看 | 久久久久久a亚洲欧洲aⅴ| 中文字幕在线成人免费看| 亚洲AV区无码字幕中文色| 在线观看无码AV网站永久免费| 亚洲欧美日韩中文高清www777| 无码欧精品亚洲日韩一区夜夜嗨| 精品在线观看免费| 亚洲gv猛男gv无码男同短文| 男女免费观看在线爽爽爽视频 | 亚洲日韩一中文字暮| 亚洲欧洲精品成人久久奇米网| 99在线观看视频免费| 人人狠狠综合久久亚洲| 久久久亚洲精品视频| 男女交性永久免费视频播放| 日本三级在线观看免费| 亚洲精华液一二三产区| 亚洲av无码成h人动漫无遮挡 | 久久精品国产精品亚洲下载| 亚洲黄色免费电影| 国产成A人亚洲精V品无码性色| 一二三四免费观看在线电影| 中文字幕免费在线视频| 亚洲偷自拍另类图片二区| 亚洲成AV人片在WWW色猫咪| 大香人蕉免费视频75| 99久热只有精品视频免费看 | 91短视频在线免费观看| 水蜜桃亚洲一二三四在线| 国产精品视频免费一区二区三区 | 韩国免费a级作爱片无码| 亚洲中文字幕乱码一区| 亚洲最新视频在线观看| 国产亚洲自拍一区| 午夜亚洲福利在线老司机| 无码国产精品久久一区免费| 99在线观看视频免费| a毛片免费在线观看| fc2成年免费共享视频18|