一般在页面中要取DWR方法的值的做法是
function test(){
dwrTest.hello(function(data){alert(data)})
}
当你的javascript的test方法要返回这个值时就不好办了。因为DWR方法返回值是执行完后通过调用指定的函数将值返回。这们的话,我们往往会这么做
function test(){
var result;
dwrTest.hello(function(data){result=data})
return result;
}
上面的代码在使用的时候会发现它的返回值为"undefined",分析一下
dwrTest.hello(function(data){result=data})
这一句中“function(data){result=data}"这个方法是一个传给dwrTest.hello的一个参数,是由hello方法执行完后再调用的,所以在test()中并不会执行,就直接返回了一个未初始化的"result"。
实际上这就是一个异步处理过程,而javaScript默认是同步执行的。
我们只要把上面的代码改成:
function test(){
var result;
DWREngine.setAsync(false);
dwrTest.hello(function(data){result=data})
DWREngine.setAsync(true);
return result;
}
这样JavaScript执行的时候就会等待"dwrTest.hello"执行完毕后再执行接下来的语句,这时我们就可以直接取得返回值了。
分享到:
相关推荐
接下来,在前端JavaScript中,我们可以通过DWR调用上述定义的Java方法,并设置回调函数来接收返回的结果。具体步骤如下: - **初始化变量**:定义一个变量`_data`用于存储回调函数中的数据。 - **设置同步模式**:...
DWR简化了这个过程,使得开发者可以轻松地调用服务器端的方法,并将结果直接在浏览器中更新,而无需刷新整个页面。 在DWR中,当需要处理带有集合返回值的方法时,有一些关键点需要注意: 1. **配置DWR**: 首先,你...
当你在服务器端的方法中返回这些类型时,DWR会自动将它们转换为JavaScript的相应类型。例如,返回一个整数`int result = 123;`,在JavaScript端,`callServerMethod(function(data){console.log(data);})`将会打印出...
dwr (Direct Web Remoting) 是一种开源技术,它允许在Web应用程序中实现在客户端JavaScript与服务器端Java之间进行安全的远程方法调用。DWR简化了前后端交互,使得前端可以直接调用后端的Java方法,就像调用本地函数...
Direct Web Remoting (DWR) 是一种开源的Java库,它允许在Web应用程序中实现实时的双向通信,即JavaScript和服务器端Java代码之间可以直接交互。这个技术极大地简化了前端和后端之间的数据交换,提高了开发效率。在...
通过DWR,你可以直接在JavaScript中调用Java方法并接收这些基本类型的返回值。例如,一个简单的Java方法可能返回一个int值,这个值可以在JavaScript中直接使用,无需额外转换。 2. **实体类**: 在实际开发中,...
利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置...
- 在JSP文件中引入DWR所需的JavaScript库,然后通过JavaScript调用Java方法: ```html <title>DWR Example <script type="text/javascript" src="/path/to/dwr/engine.js"> <script type="text/...
在客户端JavaScript中,你可以直接调用服务器端的Java方法,并传递参数。DWR会自动处理参数的序列化和反序列化过程。例如,你可以传递一个JavaScript对象到服务器,DWR会将其转换为JSON格式并传递给Java方法。 2. *...
这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript。DWR 还提供了帮助执行常见的用户界面任务的 ...
其核心价值在于允许浏览器中的JavaScript代码能够直接调用运行在Web服务器上的Java函数,如同这些函数就位于浏览器内一样。 **组成部分:** 1. **服务器端Java Servlet**:负责处理来自客户端的请求,并将响应返回...
在JavaScript中,通过引入DWR自动生成的接口文件(如TestClass.js)和核心库(engine.js, util.js),可以直接调用`testClass.testMethod1()`执行方法。 2. **有简单返回值的JAVA方法调用** 配置与无参数情况相同...
只需在DWR配置文件中声明该方法,然后在JavaScript中直接调用即可。这使得执行简单的查询或获取服务器状态等操作变得简单。 2. **有字符串参数的方法**: 在需要传递字符串数据到服务器端时,DWR支持将字符串作为...
5. **处理结果**:服务器端执行完方法后,结果会被自动发送回客户端,你可以根据需要在JavaScript中处理这些返回值。 例如,在压缩包内的文件"A051]使用DWR开发AJAX+For+J2EE.wrf"可能是一个演示或者教程,详细介绍...
DWR (Direct Web Remoting) 是一种开源技术,允许JavaScript在Web浏览器中直接调用Java方法,从而实现AJAX的应用。这个教程对于初学者来说,是理解DWR工作原理和开发流程的重要参考资料。 1. **调用没有返回值和...
在JavaScript中,你可以直接将匹配的对象传递给DWR方法。 DWR的集合处理和JavaBean转换使得在Ajax应用中传递复杂数据结构变得简单。通过合理的配置和JavaScript的封装,开发者可以在不离开客户端页面的情况下,方便...
在DWR中,如果你的Java方法返回一个字符串,这个字符串会直接在JavaScript端可用。例如,服务器端有一个方法`getString()`返回一个字符串,DWR会自动将这个字符串传递给JavaScript回调函数。这在显示消息、错误信息...
DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,...
DWR (Direct Web Remoting) 是一种用于在Web应用程序中实现AJAX技术的框架,它允许JavaScript直接调用服务器端的Java方法,从而实现实时的动态数据交换。以下是对DWR调用及传参方式的详细说明: 1. **无返回值和...