`
屌丝学Java
  • 浏览: 29853 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DWR的配置-实用说明

    博客分类:
  • jsp
 
阅读更多
学习了:http://www.cnblogs.com/kunpengit/archive/2012/03/09/2387537.html
1.1、dwr.xml的配置

  <dwr>

  <allow>

  <create creator="new" javascript="testClass" >

  <include method="testMethod1"/>

  </create>

  </allow>

  </dwr>

  <allow>标签中包括可以暴露给javascript访问的东西。

  <create>标签中指定javascript中可以访问的java类,并定义DWR应当如何获得要进行远程的类的实例。creator="new"属性指定java类实例的生成方式,new意味着DWR应当调用类的默认构造函数来获得实例,其他的还有spring方式,通过与IOC容器Spring进行集成来获得实例等等。javascript=" testClass "属性指定javascript代码访问对象时使用的名称。

  标签指定要公开给javascript的java类名。

  <include>标签指定要公开给javascript的方法。不指定的话就公开所有方法。

  <exclude>标签指定要防止被访问的方法。

  1.2、javascript中调用

  首先,引入javascript脚本

  <script src='dwr/interface/ testClass.js'></script>

  <script src='dwr/engine.js'></script>

  <script src='dwr/util.js'></script>

  其中TestClass.js是dwr根据配置文件自动生成的,engine.js和util.js是dwr自带的脚本文件。

  其次,编写调用java方法的javascript函数

  Function callTestMethod1(){

  testClass.testMethod1();

  }

  2、调用有简单返回值的java方法

  2.1、dwr.xml的配置

  配置同1.1

  <dwr>

  <allow>

  <create creator="new" javascript="testClass" >

  <include method="testMethod2"/>

  </create>

  </allow>

  </dwr>

  2.2、javascript中调用

  首先,引入javascript脚本

  其次,编写调用java方法的javascript函数和接收返回值的回调函数

  Function callTestMethod2(){

  testClass.testMethod2(callBackFortestMethod2);

  }

  Function callBackFortestMethod2(data){

  //其中data接收方法的返回值

  //可以在这里对返回值进行处理和显示等等

  alert("the return value is " + data);

  }

  其中callBackFortestMethod2是接收返回值的回调函数

  3、调用有简单参数的java方法

  3.1、dwr.xml的配置

  配置同1.1

  <dwr>

  <allow>

  <create creator="new" javascript="testClass" >

  <include method="testMethod3"/>

  </create>

  </allow>

  </dwr>

  3.2、javascript中调用

  首先,引入javascript脚本

  其次,编写调用java方法的javascript函数

  Function callTestMethod3(){

  //定义要传到java方法中的参数

  var data;

  //构造参数

  data = “test String”;

  testClass.testMethod3(data);

  }

  4、调用返回JavaBean的java方法

  4.1、dwr.xml的配置

  <dwr>

  <allow>

  <create creator="new" javascript="testClass" >

  <include method="testMethod4"/>

  </create>

  <convert converter="bean" match=""com.dwr.TestBean">

  </convert>

  </allow>

  </dwr>

  <creator>标签负责公开用于Web远程的类和类的方法,<convertor>标签则负责这些方法的参数和返回类型。convert元素的作用是告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据类型。DWR自动地在Java和JavaScript表示之间调整简单数据类型。这些类型包括Java原生类型和它们各自的封装类表示,还有String、Date、数组和集合类型。DWR也能把JavaBean转换成JavaScript 表示,但是出于安全性的原因,要求显式的配置,<convertor>标签就是完成此功能的。converter="bean"属性指定转换的方式采用JavaBean命名规范,match=""com.dwr.TestBean"属性指定要转换的javabean名称,标签指定要转换的JavaBean属性。

  4.2、javascript中调用

  首先,引入javascript脚本

  其次,编写调用java方法的javascript函数和接收返回值的回调函数

  Function callTestMethod4(){

  testClass.testMethod4(callBackFortestMethod4);

  }

  Function callBackFortestMethod4(data){

  //其中data接收方法的返回值

  //对于JavaBean返回值,有两种方式处理

  //不知道属性名称时,使用如下方法

  for(var property in data){

  alert("property:"+property);

  alert(property+":"+data[property]);

  }

  //知道属性名称时,使用如下方法

  alert(data.username);

  alert(data.password);

  }

  其中callBackFortestMethod4是接收返回值的回调函数

  5、调用有JavaBean参数的java方法

  5.1、dwr.xml的配置

  配置同4.1

  <dwr>

  <allow>

  <create creator="new" javascript="testClass" >

  <include method="testMethod5"/>

  </create>

  <convert converter="bean" match="com.dwr.TestBean">

  </convert>

  </allow>

  </dwr>

  5.2、javascript中调用

  首先,引入javascript脚本

  其次,编写调用java方法的javascript函数

  Function callTestMethod5(){

  //定义要传到java方法中的参数

  var data;

  //构造参数,data实际上是一个object

  data = { username:"user", password:"password" }

  testClass.testMethod5(data);

  }




6、调用返回List、Set或者Map的java方法

  6.1、dwr.xml的配置

  配置同4.1

  <dwr>

  <allow>

  <create creator="new" javascript="testClass" >

  <include method="testMethod6"/>

  </create>

  <convert converter="bean" match="com.dwr.TestBean">

  </convert>

  </allow>

  </dwr>

  注意:如果List、Set或者Map中的元素均为简单类型(包括其封装类)或String、Date、数组和集合类型,则不需要<convert>标签。

  6.2、javascript中调用(以返回List为例,List的元素为TestBean)

  首先,引入javascript脚本

  其次,编写调用java方法的javascript函数和接收返回值的回调函数

  Function callTestMethod6(){

  testClass.testMethod6(callBackFortestMethod6);

  }

  Function callBackFortestMethod6(data){

  //其中data接收方法的返回值

  //对于JavaBean返回值,有两种方式处理

  //不知道属性名称时,使用如下方法

  for(var i=0;i<data.length;i++){

  for(var property in data[i]){

  alert("property:"+property);

  alert(property+":"+data[i][property]);

  }

  }

  //知道属性名称时,使用如下方法

  for(var i=0;i<data.length;i++){

  alert(data[i].username);

  alert(data[i].password);

  }

  }

  7、调用有List、Set或者Map参数的java方法

  7.1、dwr.xml的配置

  <dwr>

  <allow>

  <create creator="new" javascript="testClass" >

  <include method="testMethod7"/>

  </create>

  <convert converter="bean" match="com.dwr.TestBean">

  </convert>

  </allow>

  <signatures>

  <![CDATA[

  import java.util.List;

  import com.dwr.TestClass;

  import com.dwr.TestBean;

  TestClass.testMethod7(List<TestBean>);

  ]]>

  </signatures>

  </dwr>

  <signatures>标签是用来声明java方法中List、Set或者Map参数所包含的确切类,以便java代码作出判断。

  7.2、javascript中调用(以返回List为例,List的元素为TestBean)

  首先,引入javascript脚本

  其次,编写调用java方法的javascript函数

  Function callTestMethod7(){

  //定义要传到java方法中的参数

  var data;

  //构造参数,data实际上是一个object数组,即数组的每个元素均为object

  data = [

  {

  username:"user1",

  password:"password2"

  },

  {

  username:"user2",

  password:" password2"

  }

  ];

  testClass.testMethod7(data);

  }

  注意:

  1、对于第6种情况,如果java方法的返回值为Map,则在接收该返回值的javascript回调函数中如下处理:

  function callBackFortestMethod(data){

  //其中data接收方法的返回值

  for(var property in data){

  var bean = data[property];

  alert(bean.username);

  alert(bean.password);

  }

  }

  2、对于第7种情况,如果java的方法的参数为Map(假设其key为String,value为TestBean),则在调用该方法的javascript函数中用如下方法构造要传递的参数:

  function callTestMethod (){

  //定义要传到java方法中的参数

  var data;

  //构造参数,date实际上是一个object,其属性名为Map的key,属性值为Map的value

  data = {

  "key1":{

  username:"user1",

  password:"password2"

  },

  "key2":{

  username:"user2",

  password:" password2"

  }

  };

  testClass.testMethod(data);

  }

  并且在dwr.xml中增加如下的配置段

  <signatures>

  <![CDATA[

  import java.util.List;

  import com.dwr.TestClass;

  import com.dwr.TestBean;

  TestClass.testMethod7(Map<String,TestBean>);

  ]]>

  </signatures>

  3、由以上可以发现,对于java方法的返回值为List(Set)的情况,DWR将其转化为Object数组,传递个javascript;对于java方法的返回值为Map的情况,DWR将其转化为一个Object,其中Object的属性为原Map的key值,属性值为原Map相应的value值。

  4、如果java方法的参数为List(Set)和Map的情况,javascript中也要根据3种所说,构造相应的javascript数据来传递到java中
分享到:
评论

相关推荐

    dwr配置文件详解 dwr.xml配置文件详解

    使用dwr配置文件可以带来以下几个优势: * 简化开发过程:dwr配置文件可以简化开发过程,减少代码量,提高开发效率。 * 提高系统的可维护性:dwr配置文件可以使系统更加灵活、可维护,易于修改和维护。 * 实现Java...

    DWR简单配置说明---xml、java、jsp层层说明

    在`web.xml`中,需要为DWR配置一个servlet。这一步是为了告诉Web容器如何处理与DWR相关的请求。 ```xml &lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt; &lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet...

    dwr-1.1.3-src.zip

    7. `LICENSE.txt` 包含了DWR的许可协议,详细说明了软件的使用条件和版权信息。 8. `dwr.war` 是Web应用程序的归档文件,遵循Java EE的WAR标准,包含了DWR的Web应用部署所需的所有文件,比如HTML、CSS、JavaScript...

    dwr框架资料(主要是关于dwr配置文件的说明)

    DWR(Direct Web Remoting)框架是一个开源的Java技术,...学习和掌握DWR配置文件的细节,将有助于开发出更加高效、安全的Web应用程序。通过熟练运用DWR,你可以构建出响应式、动态且易于维护的Web界面,提升用户体验。

    DWR的配置和传值DWR的配置和传值

    以下是对DWR配置和传值的详细说明: 1. **基本配置**: 在`web.xml`中,你需要配置一个名为`dwr-invoker`的Servlet。这是DWR的核心组件,负责处理所有与客户端的交互。基本配置如下: ```xml &lt;servlet-name&gt;...

    dwr相关配置笔记 代码说明

    首先,我们需要在`web.xml`中进行基本的DWR配置。最基本的配置包括定义一个名为`dwr-invoker`的Servlet,指向`uk.ltd.getahead.dwr.DWRServlet`的类。这样,所有以`/dwr/*`开头的URL请求都将被DWRServlet处理。例如...

    dwr-2.0.5.jar&commons;-logging-1.0.4.jar

    使用DWR时,开发者需要在服务器端配置DWR引擎,定义哪些Java对象和方法可以被客户端JavaScript访问。这通常通过创建一个名为`dwr.xml`的配置文件来完成。配置文件会指定类路径、安全设置、以及任何自定义转换器或...

    DWR.xml配置文件说明

    #### 一、DWR配置文件结构与作用 DWR(Direct Web Remoting)是一个开源的Ajax框架,它允许在浏览器端JavaScript代码直接调用服务器端Java方法,从而简化了传统的AJAX编程。DWR.xml是DWR的核心配置文件,用于定义...

    dwr ajax完整示例,内有dwr配置说明文档,eclicps工程

    在本示例中,我们有一个关于DWR的完整案例,包括配置说明文档和一个Eclipse工程,这对于初学者或者想要深入理解DWR的人来说非常有用。 首先,DWR的核心功能在于它的反向AJAX技术。传统的AJAX请求是单向的,即从...

    SpringBoot整合DWR-3.0.2-RELEASE,并以 " java -jar XXX.jar" 的方式独立运行

    示例使用了SpringBoot默认的Tomcat内嵌服务器, 使用了最简单的配置来运行该示例 3. 其他说明 ①开发环境 : 建议使用IntelliJ IDEA,社区版即可 ②版本管理 : 源码和示例均使用了Git进行管理 ②参考文章 : ...

    DWR3.0.jar、DWR.war和DWR2.0中文说明文档

    DWR的实例war文件通常包含了一个预配置的DWR应用,展示了如何在实际项目中集成和使用DWR。通过分析这个war文件,开发者可以学习如何配置DWR的XML配置文件(dwr.xml),以及如何创建可从JavaScript调用的Java方法。 ...

    DWR所需js文件及jar包以及配置说明

    4. **DWR配置说明**: - 在`dwr.xml`中,你可以配置`&lt;allow&gt;`元素来指定哪些Java类和方法可以暴露给JavaScript。例如: ```xml ``` - 安全性设置:可以使用`&lt;convert&gt;`元素来指定数据类型转换规则,`...

    DWR 教程 中文API DWR.xml配置文件说明 DWR学习笔记

    "DWR.xml配置文件说明书.doc"是关于DWR核心配置文件的详细指南。DWR.xml文件是DWR框架的核心配置,它定义了哪些服务器端的Java对象可以被JavaScript访问,以及这些对象的映射、安全设置和其他配置选项。通过配置这个...

    dwr ajax完整示例,内有dwr配置说明文档,sql脚本

    综上所述,这个压缩包提供的示例涵盖了使用DWR进行AJAX异步验证的完整流程,包括后端的Java方法、DWR配置、前端的JavaScript脚本以及与SSH框架的整合。对于学习和理解DWR在实际项目中的应用,这个示例是一个很好的...

    dwr详细配置说明和讲解

    1. **DOCTYPE声明**:这是每个DWR配置文件必须包含的,指定了DWR的DTD文档类型定义,用于验证配置文件的语法。 2. ****:初始化部分,用于声明创建远程bean(created)和转换bean(converted)的类。在这里,你可以...

    dwr 包的 使用入门

    以下是对DWR包的使用入门的详细说明: 1. **DWR的安装与配置**: - 在Java项目中引入DWR库,通常通过Maven或Gradle添加依赖。 - 配置DWR的`dwr.xml`文件,定义允许的远程方法和类,这是DWR的核心配置文件,用于...

    DWR学习与DWR.xml配置说明

    通过正确配置,可以确保安全、高效地使用DWR功能,比如实时更新页面、异步数据交换等。 在压缩包中的“DWR与界面开发”可能包含了如何将DWR集成到Web应用中的实例、示例代码和教程。这些资源将帮助你了解如何在实际...

    dwr配置文件!开发,培训,学习

    2. **DWR配置说明** DWR的配置主要包括以下几个部分: - **dwr.xml**:这是DWR的核心配置文件,它定义了哪些Java类可以被JavaScript调用,以及数据转换规则。在`&lt;allow&gt;`标签下,你可以指定可以被远程调用的类和...

    dwr3初学者使用说明

    ### dwr3初学者使用说明 #### 一、简介 Direct Web Remoting(简称DWR)是一种开源技术,它使得JavaScript能够直接调用Java方法变得简单。DWR3是DWR的一个版本,它提供了更为丰富的功能和更好的性能。本文档旨在...

    DWR (AJax). jar && dwr-version.properties

    DWR (AJax)框架使用配置说明 说明:压缩包里分别有:dwr.jar , dwr-version.properties , 和使用说明。 快速的介绍dwr+ssh和mvc(new)结构下的定制与使用;

Global site tag (gtag.js) - Google Analytics