`
lucifinilhades
  • 浏览: 85267 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

DWR中的JavaScript

阅读更多

DWR根据dwr.xml配置文件或注解中的信息来生成和Java代码类似的JavaScript代码。DWR调用Java代码是同步的,但是创建与Java代码匹配的Ajax远程调用接口需要实现Ajax的异步调用特性,所以DWR通过引入回调函数来解决此问题,当结果被返回时,DWR会调用这个函数。

简单的回调函数

首先创建一个Java类,代码如下:

@RemoteProxy
public class SimpleRemote {
    @RemoteMethod
    public String getXMLData(int index) {
        // write code.
    }
}

该类可以在JavaScript中这样使用:

/*
    <script type="text/javascript" src="dwr/engine.js"></script>
    <script type="text/javascript" src="dwr/interface/SimpleRemote.js"></script>
*/

var handleGetData = function(str) {
    alert(str);
};

SimpleRemote.getXMLData(1, handleGetData);

其中“1”是Java方法getXMLData()参数,此外也可减缩格式:

SimpleRemote.getXMLData(1, function(str) {
    alert(str);
});

调用元数据对象

通过使用“调用元数据对象”来指定回调函数和其他选项,例如:

SimpleRemote.getXMLData(1, 
{
    callback: function(str) { alert(str); },
    timeout: 2000,
    errorHandler: function(msg) { alert("error: " + msg); }
});

在回调函数的元数据对象中可以指定超时和错误的处理方式。

 

查找回调函数

  • 如果第一个或最后一个参数是函数,则它就是回调函数,没有元数据对象,并且其他参数都是Java的方法参数;
  • 如果最后一个参数是一个对象,这个对象中有一个callback成员,并且它是个函数,则这个对象就是元数据对象,其他的都是Java方法参数;
  • 如果第一个参数是null,假设没有回调函数,并且其他的都是Java方法参数。尽管如此,我们会检查最后一个参数是不是null,如果是就发出警告;
  • 如果最后一个参数是null,那么就是没有callback函数。

创建与Java对象匹配的JavaScript对象

为了创建一个与Java对象匹配的JavaScript对象,首先需要创建一个供远程调用的类,实现代码如下:

@RemoteProxy
public class GetRemoteUser {
    private User user;

    @RemoteMethod
    public void setUser(User p) {
        this.user = p;
    }
}

其中User类的代码如下:

@DataTransferObject
class User {
    @RemoteProperty
    String firstName;
    @RemoteProperty
    String lastName;
    @RemoteProperty
    Date birthday;
}

这样就可以在JavaScript中写成如下形式:

var user = {
    firstName: 'Bear',
    lastName: 'Bibeault',
    birthday: new Date()
};

GetRemoteUser.setUser(user);

在JavaScript中没有出现的字段,在Java中就不会被设置。因为setter的返回类型都是void,这样就不需要使用callback函数了。如果需要一个返回void的服务器端方法,也可以添加callback函数,但DWR不会向它传递任何参数。

 

 

 

分享到:
评论

相关推荐

    DWR js框架 javascript框架 web与java交互 Direct Web Remoting Ajax开源框架

    DWR js框架 javascript框架 web与java交互 Direct Web Remoting Ajax开源框架 即有java源码又有dwr.jar包 有实现步骤及演示源码

    DWR中文文档v0.9

    个程序员都能将页面与代码完美整合在一起,DOM、CSS、javascript 让人眼花缭乱,不知 从何下手。 本书的读者必须有一定的 Jsp,JavaScript,应用服务器(比如 Tomcat)的基础和使用经 验,否则请在看此教程前先去...

    JavaScript:DWR的用法实例

    JavaScript DWR 的技术是用于程序开发中涉及到得异步提交的JavaScript框架,很多的实现用户交互!

    DWR中文文档.rar

    第5章.DWR中的JavaScript简介,含4小节;第6章.engine.js的功能,含3小节;第7章.util.js的功能,含13小节;第8章.DWR进阶,含5小节;第9章.范例精讲——购物车,含8小节;第10章.附录,含常见问题(4节)和JavaScript高级...

    dwr详细配置说明和讲解

    DWR是一种AJAX(Asynchronous JavaScript and XML)的JAVA实现,它提供了一种能在web浏览器端采用JavaScript语言直接调用后台业务商业组件的解决方案。DWR通过JavaScript直接调用远程组件可以减少Web开发的时间,特别...

    DWR中文文档和dwr.jar包

    DWR中文文档和dwr.jar包 DWR中文文档v0.9Ajax向我们袭来的时候,很多写代码的程序员看到了Ajax的发展前景,但并不是每一个程序员都能将页面与代码完美整合在一起,DOM、CSS、javascript让人眼花缭乱,不知从何下手。...

    dwr和javascript的相互应用 ajax的应用 dwr的登陆验证

    一个实现登陆的例子,实现了java和javascript的相互转换和调用

    dwr实例,JavaScript调用java方法的小例子

    DWR实现java类转换成JavaScript类的小例子。

    dwr入门+springmvc实现

    编写网页,调用步骤5的javascript中的相关方法(间接调用服务器端的相关类的方法),执行业务逻辑,将执行结果利用回调函数返回。 6.在回调函数中,得到执行结果后,可以继续编写业务逻辑的相关javascript代码。 ...

    DWR2.0.4的jar包

    DWR是一种AJAX(Asynchronous JavaScript and XML)的JAVA实现,它提供了一种能在web浏览器端采用JavaScript语言直接调用后台业务商业组件的解决方案。DWR通过JavaScript直接调用远程组件可以减少Web开发的时间,特别...

    ajax dwr 2.0 框架 jar包 中文官方文档 天涯浪子

    把它看作一个黑盒子,这个 servlet 有两个主要作用:首先,对于公开的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的 JavaScript 包含存根函数,代表 Java 类上的对应方法并在幕后执行 ...

    DWR中文教程(教程实在不可多得)

    该资源是DWR中文教程,DWR是一个JAVASCRIPT框架,可以在JS调用JAVABEAN,很高兴能和大家分享^_^

    DWR中文官方文档-打包下载

    最全DWR中文文档,全部打包下载,欢迎下载

    dwr使用方法,配置

     标签中指定javascript中可以访问的java类,并定义DWR应当如何获得要进行远程的类的实例。creator="new"属性指定java类实例的生成方式,new意味着DWR应当调用类的默认构造函数来获得实例,其他的还有spring方式,...

    学习DWR JavaScript函数整理

    功能:检查中英文字符的长度 参数:str 要检查的字符串 返回值:字符串的长度 ******************************************/ function checkLength(str) { num=str.length var arr=str.match(/[^\\\\\\\\\\\\\\\...

    DWR实现DEMO

    DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,...

    DWR中文教程 PDF格式

    它可以让你在浏览器中的Javascript代 码调用Web服务器上的Java 代码,就像在Java代码就在浏览器中一样。 DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,你感觉调用就像发生在浏览器端...

    DWR完整资料-附加DWR中文文档.pdf

    我们用到的很多框架中都已经固化了基于页面的传统应用模式,同时这些应用模式也已经深深进入了我们的思想中。...它可以让你在浏览器中的Javascript代码调用Web服务器上的Java代码,就像在Java代码就在浏览器中一样。

    dwr2.0jar包

    它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。 DWR主要包括两部分: 在服务器上运行的Servlet来处理请求并把结果返回浏览器。 运行在浏览器上的Javascript,...

Global site tag (gtag.js) - Google Analytics