posts - 1,  comments - 4,  trackbacks - 0
          DWR,Direct Web Remoting的簡(jiǎn)稱是DWR,它的實(shí)現(xiàn)是基于Ajax的,可實(shí)現(xiàn)無(wú)刷新的效果。這個(gè)框架最大的優(yōu)點(diǎn)就是可以在JS中調(diào)用Java方法,傳遞參數(shù),并且可以得到返回值。它是開源(Apache)的產(chǎn)品。很早之前使用過(guò)DWR,今天幫師兄做作業(yè),回顧了一番,有了更進(jìn)一步的認(rèn)識(shí),所以簡(jiǎn)單總結(jié)一下它的使用方法。
          第一步:下載DWR包。
          從網(wǎng)站(http://directwebremoting.org/dwr/download)下載最新的dwr.jar包,放在你的Application的WEB-INF/lib目錄下。
          第二步:配置web.xml文件。
          在web.xml文件的<web-app></web-app>標(biāo)簽中,添加如下配置:
          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文件,內(nèi)容如下:
          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類實(shí)例的生成方式。"new"意味著DWR應(yīng)該調(diào)用類的默認(rèn)構(gòu)造函數(shù)來(lái)獲得類的實(shí)例,一般我們用這個(gè)就可以搞定了。當(dāng)然還有其它的方式,目前我還沒(méi)有用到,就不說(shuō)了。
          javascript="Pict"指定JavaScript代碼訪問(wèn)Java對(duì)象的時(shí)候使用的名稱。
          標(biāo)簽指定要公開給JavaScript的java類名。
          <include>標(biāo)簽指定要公開給JavaScript的方法,不指定的話公開所有的方法。
          第四步:在JS中調(diào)用。
          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>
          

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

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


          如果有參數(shù),也有返回值,可直接在方法中加入到回調(diào)函數(shù)的前面即可。
          總的來(lái)說(shuō),參數(shù)和回調(diào)函數(shù)都放在方法的括號(hào)中,遵循的原則是回調(diào)函數(shù)總是最后一個(gè),有參數(shù)就往其前面寫,沒(méi)有就不用寫了。


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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 凭祥市| 肇源县| 纳雍县| 岑溪市| 瑞安市| 桦南县| 天柱县| 张家口市| 麻阳| 桦甸市| 利川市| 涿州市| 上杭县| 宜宾市| 赤峰市| 济源市| 夹江县| 沙田区| 阳高县| 东海县| 确山县| 六安市| 正阳县| 建昌县| 阳高县| 陇川县| 灵川县| 永嘉县| 屏山县| 普陀区| 同德县| 大余县| 沂水县| 铜陵市| 莱芜市| 云林县| 通辽市| 信宜市| 陆川县| 巴东县| 顺昌县|