DWR异步调用方法详解:无返回值与简单返回值处理
需积分: 11 80 浏览量
更新于2024-09-12
收藏 45KB DOC 举报
DWR(Direct Web Remoting)是一种强大的JavaScript远程调用框架,它允许Web应用程序在客户端和服务器端之间进行无缝通信。本文将深入探讨DWR的两种主要调用方法:无返回值和有简单返回值的Java方法。
1. 调用无返回值的Java方法
首先,要在dwr.xml配置文件中设置允许远程调用的规则。使用`<allow>`标签来声明哪些Java类和方法可以被JavaScript访问。例如:
```xml
<dwr>
<allow>
<createcreator="new" javascript="testClass">
<param name="class" value="/com.dwr.TestClass"/>
<includemethod="testMethod1"/>
</create>
</allow>
</dwr>
```
- `<createcreator="new">`指定使用默认构造函数创建Java对象,如果需要使用Spring容器管理,则可以改为其他创建方式。
- `javascript="testClass"`是JavaScript代码中引用的对象名称。
- `<param>`标签定义了要暴露给JavaScript的Java类名,这里是`/com.dwr.TestClass`。
- `<includemethod="testMethod1">`指定了要在客户端上可调用的Java方法,这里是`testMethod1`,如果没有指定,则会公开该类的所有方法。
然后,在JavaScript端,需要引入DWR相关的库文件:
```javascript
<script src='dwr/interface/testClass.js'></script>
<script src="/dwr/engine.js"></script>
<script src="/dwr/util.js"></script>
```
最后,在JavaScript函数中调用Java方法:
```javascript
Function callTestMethod1() {
testClass.testMethod1();
}
```
执行这个函数,`testMethod1()`就会在服务器端执行,但不会返回任何值。
2. 调用有简单返回值的Java方法
调用有返回值的方法与无返回值的类似,只需在配置文件中添加对返回值的支持。配置保持不变,但在服务器端,被调用的方法需要返回一个值,JavaScript端可以通过`execute`函数获取这个值:
```javascript
var result = testClass.execute('testMethod2', [], function(data) {
// 处理返回值
console.log('Result:', data);
});
```
这里的`execute`函数接受方法名、参数数组和回调函数,回调函数会在服务器执行完方法并返回结果后被调用。
总结起来,DWR提供了灵活的方式来远程调用Java方法,无论是无返回值还是有返回值的,都需要在配置文件中指定允许的类和方法,并在JavaScript中通过DWR提供的API进行调用。通过这种方式,可以实现客户端与服务器之间的高效数据交互。
2018-01-04 上传
2019-07-28 上传
2010-02-01 上传
2009-12-22 上传
209 浏览量
2009-11-04 上传
2019-04-10 上传
2009-09-07 上传
mamba10
- 粉丝: 69
- 资源: 36