DWR异步调用方法详解:无返回值与简单返回值处理

需积分: 11 6 下载量 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进行调用。通过这种方式,可以实现客户端与服务器之间的高效数据交互。