posts - 30,  comments - 85,  trackbacks - 0

          Ajax 的使用

          ?????? 今天終于揭開了那個一直讓我神往的 ajax 技術的面紗。這里用的 dwr 實現的 ajax 技術。好了,現在我們看看要想在你的 j2ee 項目中使用 dwr 該怎么辦吧!由此也揭開我們的第一章。

          1????????? Dwr 的配置和使用

          ?????? 首先我們看看如何配置 dwr 呢?很簡單。把人家的 jar 包拷貝到你的 lib 目錄下啊。看過一些資料,一些人說: dwr 必須要配置 bsf-2.3.jar , beanshell-1.3.0 。其實不然,只要把 dwr.jar 加入就可以了。

          ??? 第二步:配置 web.xml

          ?????? < servlet >

          ??????? < servlet-name > dwr-invoker </ servlet-name >

          ??????? < display-name > DWR Servlet </ display-name >

          ??????? < description > Direct Web Remoter Servlet </ description >

          ??????? < servlet-class > uk.ltd.getahead.dwr.DWRServlet </ servlet-class >

          ??????? < init-param >

          ??????????? < param-name > config </ param-name >

          ??????????? < param-value > WEB-INF/dwr.xml </ param-value >

          ??????? </ init-param >

          ??????? < init-param >

          ??????????? < param-name > debug </ param-name >

          ??????????? < param-value > false </ param-value >

          ??????? </ init-param >

          ??????? < init-param >

          ??????????? < param-name > scriptCompressed </ param-name >

          ??????????? < param-value > false </ param-value >

          ??????? </ init-param >

          ??????? < load-on-startup > 8 </ load-on-startup >

          </ servlet >

          < servlet-mapping >

          ??????? < servlet-name > dwr-invoker </ servlet-name >

          ??????? < url-pattern > /dwr/* </ url-pattern >

          </ servlet-mapping >

          ?????? 好了,因為你在 web.xml 下配置了 :

          ??????????? < param-name > config </ param-name >

          ??????????? < param-value > WEB-INF/dwr.xml </ param-value >

          ? ? 那么就要在 web-Inf 下建立一個 dwr.xml 文件。

          ??? 下面我們看看 dwr.xml 文件吧:

          <dwr>

          ??? <allow>

          ??????? <create creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO">

          ??????????? <include method="findApartments"/>

          ??????????? <include method="countApartments"/>

          ??????????? <include method="getDate"/>

          ??????? </create>

          ? </allow>

          </dwr>

          ?????? 是不是很簡單,所有的 <create></create> 之間的代碼就是配置 ajax 的一些屬性,

          其中 creator= new 表示類的實例是 new 出來的。后面的 include 包含的就是開放給 dwr 可以通過 javascript 訪問的類。 Javascipt 中的值就是你要在 jsp 頁面編寫的 javaScript 代碼中使用的函數名。這些都不難可以理解其意思。

          這樣我們就可以在外面的 jsp 頁面上使用了。

          ??? 現在看看 jsp 是怎么樣樣的吧 ! 這里只把關鍵的部分拿出來分析以下:

          <script src='<%request.getContextPath()%>/dwr/interface/ApartmentDAO.js'></script>

          <script src='<%request.getContextPath()%>/dwr/engine.js'></script>

          <script src='<%request.getContextPath()%>/dwr/util.js'></script>

          <script>

          function date(guid) {

          ??? ApartmentDAO.getDate(loadTotal2,guid);

          ?}?

          ?function loadTotal2(data) {

          ??? document.getElementById("today").innerHTML = data;

          ? }

          </script>

          再看看內部的 java 類的部分代碼:

          public class ApartmentDAO {

          public String getDate(String guid){

          ???? Date date =? new Date();

          ???? return date.toString();

          ? }

          }

          這個 getDate() 方法返回的是當前的系統時間,很簡單。然后通過在 dwr.xml 聲明后可以在 jsp 頁面中使用 ApartmentDAO.getDate(loadTotal2,guid); 來調用 ApartmentDAO 中的方法了,看他調用的好像有點怪異,明明 ApartmentDAO 中只有一個參數啊。這里用到 javascript 的回掉了。 其實是通過 javascript 的回掉將類里面的返回值在 function loadTotal2(data) 中使用。這里的參數 data 就是 java return 出來的值,這樣我們就可以得到 java 類中的返回值后寫一些 javascript 了。

          以上就完成了簡單的 ajax 的使用了,通過這個簡單的例子是不是理解 ajax 技術了呢。當然還不夠,但這也算是我們的突破口吧,有這樣的一會試驗后,后面的 ajax 就不是那么神秘呢,歸根到底他不就是“ javascript 前臺調用后臺 java 類”嗎?

          2????????? 注意要點

          首先 web.xml 一定要配置正確, servlet 一定要正確。

          Dwr.xml 中配置類和方法一定要正確。

          Jsp 中我們要注意以下一些內容:

          <script src='<%request.getContextPath()%>/dwr/interface/ApartmentDAO.js'></script>

          <script src='<%request.getContextPath()%>/dwr/engine.js'></script>

          <script src='<%request.getContextPath()%>/dwr/util.js'></script>

          其中:

          <script src='<%request.getContextPath()%>/dwr/engine.js'></script>

          <script src='<%request.getContextPath()%>/dwr/util.js'></script>

          是一定不能忘的,注意前面我們還要加上 <%request.getContextPath()%> 防止你是在其他的 context 下使用時不正確了,這個細節我以前沒有注意,實在是枉弄了半天,以后不能這么粗心大意了。第一句也必須加上,注意 js 的文件名要和類名一致。

          好了,注意上面幾個部分 dwr 的使用就可以非常輕松了。今天的思考就到這里了。

          ?

          posted on 2006-09-15 15:24 安文豪 閱讀(461) 評論(0)  編輯  收藏 所屬分類: j2ee

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


          網站導航:
           

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(6)

          隨筆檔案(28)

          文章分類(3)

          文章檔案(4)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 86710
          • 排名 - 670

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洛隆县| 个旧市| 永靖县| 蒙阴县| 新津县| 大丰市| 达日县| 长乐市| 泸西县| 右玉县| 扬中市| 博白县| 疏勒县| 涿鹿县| 闸北区| 象山县| 阿拉善盟| 武鸣县| 郯城县| 余江县| 绥芬河市| 沧州市| 武山县| 内江市| 沙坪坝区| 麻城市| 珲春市| 武定县| 榆树市| 垫江县| 滁州市| 鄯善县| 高邮市| 湖南省| 贵德县| 鄂尔多斯市| 阿合奇县| 左权县| 涿鹿县| 晋中市| 枣强县|