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 安文豪 阅读(510) 评论(0)  编辑  收藏 所属分类: j2ee

只有注册用户登录后才能发表评论。


网站导航:
 

<2026年11月>
日一二三四五六
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(6)

随笔档案(28)

文章分类(3)

文章档案(4)

最新随笔

搜索

  •  

积分与排名

  • 积分 - 88121
  • 排名 - 675

最新评论

阅读排行榜

评论排行榜