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

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


网站导航:
 

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(6)

随笔档案(28)

文章分类(3)

文章档案(4)

最新随笔

搜索

  •  

积分与排名

  • 积分 - 86222
  • 排名 - 665

最新评论

阅读排行榜

评论排行榜