posts - 1,  comments - 4,  trackbacks - 0
          DWR,Direct Web Remoting的簡稱是DWR,它的實現是基于Ajax的,可實現無刷新的效果。這個框架最大的優點就是可以在JS中調用Java方法,傳遞參數,并且可以得到返回值。它是開源(Apache)的產品。很早之前使用過DWR,今天幫師兄做作業,回顧了一番,有了更進一步的認識,所以簡單總結一下它的使用方法。
          第一步:下載DWR包。
          從網站(http://directwebremoting.org/dwr/download)下載最新的dwr.jar包,放在你的Application的WEB-INF/lib目錄下。
          第二步:配置web.xml文件。
          在web.xml文件的<web-app></web-app>標簽中,添加如下配置:
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          <servlet>
          	<servlet-name>dwr-invoker</servlet-name>
          	<servlet-class>
          org.directwebremoting.servlet.DwrServlet
          </servlet-class>
            </servlet>
            <servlet-mapping>
          		<servlet-name>dwr-invoker</servlet-name>
          		<url-pattern>/dwr/*</url-pattern>
          	</servlet-mapping>
          

          第三步:配置dwr.xml文件。
          在你的Application的WEB-INF下新建dwr.xml文件,內容如下:
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.ltd.uk/dwr/dwr20.dtd">
          <dwr>
            <allow>    
              <create creator="new" javascript="Pict" scope="application">
                <param name="class"  value="bean.Pict"/>
                 <include method="method1" />
              </create>         
            </allow>
          </dwr>
          

          解釋:
          creator="new"屬性指定java類實例的生成方式。"new"意味著DWR應該調用類的默認構造函數來獲得類的實例,一般我們用這個就可以搞定了。當然還有其它的方式,目前我還沒有用到,就不說了。
          javascript="Pict"指定JavaScript代碼訪問Java對象的時候使用的名稱。
          標簽指定要公開給JavaScript的java類名。
          <include>標簽指定要公開給JavaScript的方法,不指定的話公開所有的方法。
          第四步:在JS中調用。
          1. 引入JavaScript腳本。
          1
          2
          3
          <script language="javascript1.2" src="dwr/interface/Pict.js"></script>
          <script language="javascript1.2" src="dwr/util.js"></script>
          <script language="javascript1.2" src="dwr/engine.js"></script>
          

          其中第一個導入的標簽腳本必須是手動寫入,名字和<create>標簽中的屬性JavaScript的值相等,其后綴為.js。你只要在這里手動寫入就可以了,實際由dwr根據配置文件自動生成其內容。util.js和engine.js是dwr自帶的腳本文件。
          2. 編寫調用java方法的JS函數。
          比如:下面是一個沒有參數,沒有返回值的函數調用。
          1
          2
          3
          Function callJava(){
             Pict.method1();
          }
          

          如果無參數,有返回值:
          1
          2
          3
          4
          5
          6
          Function callJava(){
             Pict.method1(retu);//retu稱之為回調函數,實際就是將返回值賦給了這個函數。
          }
          Function retu(data){
             Alert(data);//這里的data的值才是實際上的方法method1的返回值。
          }
          


          如果有參數,也有返回值,可直接在方法中加入到回調函數的前面即可。
          總的來說,參數和回調函數都放在方法的括號中,遵循的原則是回調函數總是最后一個,有參數就往其前面寫,沒有就不用寫了。


          基本上的用法如上,但還有一些細節,比如返回值是JavaBean,Map等,都需要進一步的配置,等俺明天再寫。
          文章來源:http://lan0725.blog.chinajavaworld.com/entry/5945/0/
          posted on 2008-12-17 11:05 Elan 閱讀(187) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 抚顺县| 图们市| 类乌齐县| 达拉特旗| 浏阳市| 昌乐县| 清镇市| 延吉市| 宿松县| 屯昌县| 扶余县| 铜鼓县| 宾阳县| 黄梅县| 湖北省| 红安县| 惠安县| 荃湾区| 怀来县| 定襄县| 库尔勒市| 哈巴河县| 永兴县| 尼勒克县| 永福县| 山西省| 合川市| 黄浦区| 武穴市| 关岭| 镇原县| 莱阳市| 资中县| 会宁县| 无锡市| 芜湖县| 淮滨县| 惠来县| 南部县| 陆河县| 武鸣县|