DWR入门教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有两种方法开始DWR,简单的方式是下载WAR文件然后看看。但是这不能帮你知道如何轻松的把DWR整合到你的web应用中,所以还是推荐你按照下面的3个步骤做:

下载dwr.jar文件。把它放到你的webapp的WEB-INF/lib目录下。那里可能已经有很多其他的jar文件了。

需要把下面的代码加到WEB-INF/web.xml文件中。那部分需要和其他的在一起,部分也一样。

dwr-invoker

DWR Servlet

uk.ltd.getahead.dwr.DWRServlet

debug

true

dwr-invoker

/dwr/*

在WEB-INF目录下的web.xml旁边创建一个dwr.xml文件。可以从最简单的配置开始:

"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"

"/dwr/dwr10.dtd">

DWR配置文件定义了那些DWR会创建提供远程调用的Javascript类。在上面的例子中我们定义了两个类来提供远程调用,并为其提供的Javascript类的名字。

在上面我们使用了new创建器,它会调用没有参数的构造函数来创建实例,但是所有JavaBean必须有这一构造函数。还要注意DWR有一些限制:

∙不要出现Javascript保留关键字;和保留关键字同名的函数指定被排除。多数

Javascript的关键字和Java是相同的。所以你不可能有一个方法叫做"try()"。但是

该死"delete()"对与Javascript有着特殊意义,而对Java则不是。

∙Javascript方法重载是不支持的,所以尽量不要再Java中使用。

3. 访问下面的URL

http://localhost:8080/[YOUR-WEBAPP]/dwr/

你可以看见一个页面,里面有第二步中的类。接着往里点,你会看到所有可以调用的方法列表。这个页面是动态生成用来测试的例子。

自己动手试一下!

在文档中有很多例子演示如何动态更改页面中的文字、更新列表、操作表单,还有直接更改table中的内容。每一个都有如何实现的介绍。

另一种方式是看刚才的页面中提供的代码:

到http://localhost:8080/\[YO UR-WEBAPP\]/dwr/ 页面,点击你的类。查看源码,找到执行方法的那几行,把那些文字粘贴到你的HTML或JSP中。

要包括下面这些能产生神奇效果的Javascript文件的链接。

src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'>

你也可以把其中/[YOUR-WEBAPP]/替换成你的web页面的相对路径。

DWR根据dwr.xml生成和Java代码类似的Javascript代码。

相对而言Java同步调用,创建与Java代码匹配的Ajax远程调用接口的最大挑战来至与实现Ajax的异步调用特性。

DWR通过引入回调函数来解决这个问题,当结果被返回时,DWR会调用这个函数。

有两种推荐的方式来使用DWR实现远程方法调用。可以通过把回调函数放在参数列表里,也可以把回调函数放到元数据对象里。

当然也可以把回调函数做为第一个参数,但是不建议使用这种方法。因为这种方法在处理自动处理http对象时(查看"Alternative Method")上会有问题。这个方法主要是为向下兼容而存在的。

假设你有一个这样的Java方法:

public class Remote {

public String getData(int index) { ... }

}

我们可以在Javascript中这样使用:

...

function handleGetData(str) {

alert(str);

}

相关文档
最新文档