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

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

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

    溫暖潔森

    勇敢做自己

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      13 隨筆 :: 1 文章 :: 70 評論 :: 0 Trackbacks
    [原創]實踐總結ajax各種使用方式(上)
    [原創]實踐總結ajax各種使用方式(中)

    4、使用DWR進行ajax開發

    介紹:

    DWR(Direct Web Remoting)是一個WEB遠程調用框架.利用這個框架可以讓AJAX開發變得很簡單.利用DWR可以在客戶端利用JavaScript直接調用服務端的Java方法并返回值給JavaScript就好像直接本地客戶端調用一樣(DWR根據Java類來動態生成JavaScrip代碼).它的最新版本DWR0.6添加許多特性如:支持Dom Trees的自動配置,支持Spring(JavaScript遠程調用spring bean),更好瀏覽器支持,還支持一個可選的commons-logging日記操作官方,本文版本是DWR2.0 ,具體詳情請訪問DWR官方網站


    4.1、業務需求

    通過一個簡單的二級菜單來說明DWR的使用

    4.2、業務實現

    前臺頁面:

     1一級菜單:
     2        <select id="tct" onchange="findSub2()">
     3            <option>
     4                0001
     5            </option>
     6            <option>
     7                0002
     8            </option>
     9        </select>
    10        二級菜單:
    11        <select name="subCode" id="subName"></select>
    12
    13

    js腳本:

    1    <script src="${ctx}/dwr/interface/ExamDictionaryManager.js"></script>
    2        <script type="text/javascript">
    3function findSub2(){
    4ExamDictionaryManager.findSubNameList(dwr.util.getValue("tct"),function(obj){
    5dwr.util.removeAllOptions("subCode");
    6dwr.util.addOptions("subCode",obj,'subCode','subName');
    7}
    );
    8}

    9</script>

    上面引用的${ctx}/dwr/interface/ExamDictionaryManager.js是后臺操作的業務類,在這需要聲明
    findSub2()方法是觸發一級菜單的值傳到后臺業務方法進行處理并返回
    dwr.util.removeAllOptions("subCode");是把二級菜單subCode值先清空
    dwr.util.addOptions("subCode",obj,'subCode','subName');是把二級菜單名稱是subCode的以subCode為value,subName為text

    提示:DWR2.0與DWR1.1的區別,是傳入參數和回調函數順序不同

    DWR2.0:  

    紅色字體是表明是參數在前,回調函數在后
    1ExamDictionaryManager.findSubNameList(dwr.util.getValue("tct"),function(obj){
    2dwr.util.removeAllOptions("subCode");
    3dwr.util.addOptions("subCode",obj,'subCode','subName');
    4}
    );
    5

    DWR1.1:

    紅色字體表明是回調函數在前,參數在后

    1ExamDictionaryManager.findSubNameList(function(obj){
    2dwr.util.removeAllOptions("subCode");
    3dwr.util.addOptions("subCode",obj,'subCode','subName');
    4}
    ,dwr.util.getValue("tct"));
    5}

    dwr.xml文件

     1<?xml version="1.0" encoding="UTF-8"?>
     2<!DOCTYPE dwr PUBLIC
     3    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
     4    "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
     5
     6<dwr>
     7
     8  <create creator="spring" javascript="ExamDictionaryManager">
     9      <param name="beanName" value="examDictionaryManager"/>
    10    </create>
    11</dwr>

    spring配置文件

    <bean id="examDictionaryManager"
            class
    ="com.gresoft.sanitation.service.examapply.ExamDictionaryManager" />


    web.xml配置


     1<!-- DWR servlet,生產環境應該Debug為false -->
     2    <servlet>
     3        <servlet-name>dwr-invoker</servlet-name>
     4        <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
     5        <init-param>
     6            <param-name>debug</param-name>
     7            <param-value>true</param-value>
     8        </init-param>
     9        <load-on-startup>1</load-on-startup>
    10    </servlet>
    11
    12    <servlet-mapping>
    13        <servlet-name>dwr-invoker</servlet-name>
    14        <url-pattern>/dwr/*</url-pattern>
    15    </servlet-mapping>








    業務方法:

    1public List findSubNameList(String typeCode) {
    2
    3        String hql = "select distinct new map(d.subCode as subCode,d.subName as subName) from ExamDictionary as d "
    4                + "where d.typeCode =:typeCode";
    5        return createQuery(hql).setString("typeCode", typeCode).list();
    6    }

    7


    通過前臺js腳本傳入的參數返回查詢的數據集合 

    頁面顯示效果:



        至此,二級級聯菜單功能已經完成,通過上述例子,可以發現DWR框架為我們處理我們之前用XML或JSON進行數據轉換
    的功能,大大提高了開發者開發效率。

     

    參考文章  掌握Ajax系列      Ajax和XML:五種Ajax反模式       Ajax和XML:五種常見Ajax模式     征服 Ajax 應用程序的安全威脅

    posted on 2008-01-08 17:37 harry520 閱讀(1867) 評論(1)  編輯  收藏 所屬分類: J2EE

    評論

    # re: [原創]實踐總結ajax各種使用方式(下) 2008-01-08 22:02 xidudui
    恰好是我需要的  回復  更多評論
      

    主站蜘蛛池模板: 永久黄色免费网站| 亚洲国产AV一区二区三区四区| 免费一级全黄少妇性色生活片 | 亚洲精品无码久久久久A片苍井空| 亚洲色大成WWW亚洲女子| 精品无码国产污污污免费网站 | 亚洲天堂免费在线| 亚洲av乱码一区二区三区香蕉 | 久久影视国产亚洲| 亚洲欧洲日韩国产综合在线二区| 亚洲va成无码人在线观看| 韩国免费一级成人毛片| 精品日韩99亚洲的在线发布| 女人被免费视频网站| 亚洲爆乳少妇无码激情| 亚洲福利精品电影在线观看| 亚洲熟妇av一区二区三区下载| 最近高清中文字幕无吗免费看| 亚洲国产成人精品无码区在线网站| 亚洲三级高清免费| 国产成人高清亚洲一区91| 亚洲性在线看高清h片| 无码国产精品一区二区免费3p| 天天操夜夜操免费视频| 野花视频在线官网免费1| av大片在线无码免费| 亚洲日本VA午夜在线电影| 亚洲第一区精品日韩在线播放| a级毛片毛片免费观看久潮喷| 久久精品国产精品亚洲艾草网 | 日韩免费高清大片在线| 亚洲成a人片在线观看精品| 蜜臀AV免费一区二区三区| 亚洲色丰满少妇高潮18p| 亚洲七七久久精品中文国产| 无码人妻久久一区二区三区免费| 色天使亚洲综合在线观看| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲图片在线观看| 四虎国产精品免费视| 无码精品国产一区二区三区免费 |