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

dwr学习02

    博客分类:
  • Ajax
阅读更多

DWR是返回List的值

4.2 、javascript中调用
首先,引入 javascript 脚本
其次,编写调用 java 方法的 javascript 函数和接收返回值的回调函数
Function callTestMethod4(){
      testClass.testMethod4(callBackFortestMethod4);
}
Function callBackFortestMethod4(data){
     // 其中 date 接收方法的返回值
// 对于 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" >
<param name="class" value= "com.dwr.TestClass" />
<include method="testMethod5"/>
</create>
<convert converter="bean" match=" com.dwr.TestBean">
                  <param name="include" value="username,password" />
</convert>
</allow>
</dwr>
5.2 、javascript中调用
首先,引入 javascript 脚本
其次,编写调用 java 方法的 javascript 函数
Function callTestMethod5(){
                 // 定义要传到 java 方法中的参数
      var data;
      // 构造参数, date 实际上是一个 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" >
<param name="class" value= "com.dwr.TestClass" />
<include method="testMethod6"/>
</create>
<convert converter="bean" match= "com.dwr.TestBean ">
<param name="include" value="username,password" />
</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){
     // 其中 date 接收方法的返回值
// 对于 JavaBean 返回值,有两种方式处理
             // 不知道属性名称时,使用如下方法
           for(var i=0;i<data.length;i++){
for(var property in data){
                  alert("property:"+property);
                  alert(property+":"+data[property]);
               }
}
// 知道属性名称时,使用如下方法
for(var i=0;i<data.length;i++){
               alert(data.username);
               alert(data.password);
}
}
7、调用有List、Set或者Map参数的java方法
7.1、dwr.xml的配置
<dwr>
<allow>
<create creator="new" javascript="testClass" >
<param name="class" value= "com.dwr.TestClass" />
<include method="testMethod7"/>
</create>
<convert converter="bean" match= "com.dwr.TestBean ">
<param name="include" value="username,password" />
</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;
      // 构造参数, date 实际上是一个 object 数组,即数组的每个元素均为 object
data = [
                      {
                         username:"user1",
                         password:"password2"
                      },
                      {
                         username:"user2",
                         password:" password2"
                      }
                  ];
      testClass.testMethod7(data);
}
注意:
1、 对于第 6 种情况,如果 java 方法的返回值为 Map ,则在接收该返回值的 javascript 回调函数中如下处理:
function callBackFortestMethod(data){
           // 其中 date 接收方法的返回值
           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学习必备

    总的来说,这个压缩包提供了一个全面的学习DWR的资源集合,从理论知识到实践案例,覆盖了DWR的方方面面。通过深入研究这些材料,你不仅可以了解DWR的工作机制,还能学会如何在实际项目中有效地应用它,提升Web应用的...

    DWR学习资料

    DWR学习资料 :DWR 3.0 上传文件.txt DWR3.0反向Ajax示例.txt DWR3.0学习笔记.txt DWR3.0学习网址.txt dwr分页.doc DWR分页代码.doc DWR中文文档.doc DWR中文文档.pdf dwr做comet的完整实现.doc Spring整合DWR comet ...

    dwr学习教程3

    【DWR学习教程3】是针对Direct Web Remoting (DWR)这一JavaScript和Java之间的通信框架的深入学习资料。DWR允许在Web浏览器和服务器之间进行实时、安全且高效的交互,使得前端JavaScript能够调用后端Java方法,极大...

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

    首先,"DWR学习笔记"提供了对DWR基础概念、核心功能以及实际应用的概述。这些笔记可能包含了DWR的基本架构,如它如何通过AJAX技术实现实时的Web交互,以及如何创建和调用服务器端的Java方法。 "DWR中文API"是DWR库...

    DWR框架配置学习教程

    ### DWR框架配置学习教程 #### 一、DWR框架简介与配置 DWR(Direct Web Remoting)是一个用于简化Ajax应用开发的框架,它可以让客户端JavaScript代码直接调用服务器端Java方法,从而大大简化了前端与后端的交互...

    DWR框架学习资料...

    - "DWR学习.ppt":可能深入探讨了DWR的高级特性,如批处理、安全控制和性能优化,适合对DWR有一定了解的学习者提升技能。 6. **学习DWR的好处** - **提升效率**:DWR简化了AJAX开发,减少了前端与后端之间的沟通...

    学习dwr的一个例子

    总的来说,"学习dwr的一个例子"这个压缩包提供了一个实战平台,帮助初学者理解DWR的使用方法和它在实际项目中的应用,通过学习和研究这个例子,你将能够熟练地将DWR集成到你的Web应用中,提升Web应用的交互性和性能...

    DWR学习案例详解(数据库)

    在这个DWR学习案例中,你可能会看到如何设置DWR环境,创建Java和JavaScript接口,以及如何进行数据库操作的示例。案例可能包括创建用户界面元素,如表格或表单,用于显示和编辑数据;编写服务器端的Java方法,处理...

    dwr入门 dwr学习资料

    本套DWR学习资料旨在帮助初学者快速掌握DWR的基本概念和使用技巧。通过实例和详细的说明,你可以系统地了解如何在实际项目中应用DWR。 1. **DWR的基本概念** - **反向AJAX**:DWR的核心技术之一,允许服务器主动推...

    DWR2学习整理资料

    **DWR(Direct Web Remoting)**是一种WEB远程调用框架,主要目的是简化AJAX(Asynchronous JavaScript and XML)开发。通过DWR,开发者可以在客户端的JavaScript中直接调用服务器端的Java方法,并且如同本地调用...

    dwr视频教程

    这个“dwr视频教程1”很可能是一系列教程中的第一部分,旨在帮助学习者理解和掌握DWR的基本概念和用法。 DWR的核心功能是提供一种安全、高效的方式,使得JavaScript可以调用服务器上的Java方法,就像是本地函数一样...

    dwr学习教程2

    【DWR学习教程2】是针对Direct Web Remoting(DWR)框架的深入学习资源,主要面向希望掌握或提升Web应用程序远程调用能力的开发者。DWR是一个开源Java库,它允许JavaScript在浏览器中直接调用服务器上的Java方法,...

    DWR框架学习demo

    **DWR(Direct Web Remoting)框架学习指南** DWR,全称为Direct Web Remoting,是一种在Web应用程序中实现客户端与服务器端之间直接通信的技术。它允许JavaScript在浏览器端直接调用Java方法,实现了真正的Ajax...

    DWR2学习整理资料工程4

    DWR2学习整理资料工程最后一部分,第一次搞这东西,传得有点久。

    (总)DWR学习下载

    在提供的压缩包文件“DWR与界面开发”中,可能包含了相关的示例代码、教程文档或者DWR项目的实例,这些都是深入学习和实践DWR的好资源。通过阅读和分析这些材料,你可以更全面地了解如何将DWR应用于实际项目,提高...

    DWR 1.0 学习示例

    **DWR 1.0 学习示例** Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现Ajax功能。DWR 1.0 版本是早期的一个版本,尽管现在可能已经被更新的版本替代...

    DWR学习资料汇总(PDF)

    这个"**DWR学习资料汇总(PDF)**"压缩包显然是一个包含各种DWR学习资源的集合,旨在帮助开发者快速理解和掌握DWR技术。 DWR的核心功能是提供了一个安全且易于使用的接口,使得JavaScript可以直接调用服务器上的Java...

    dwr学习实例+dwr完整包(简单登陆,完整版,下载可直接跑)

    在本实例中,我们看到的是一个基于DWR的简单登录系统,它包含了一个完整的包,下载后可以直接运行,这对于初学者来说是极好的学习资源。 这个实例主要展示了以下几个知识点: 1. **DWR的基本概念**:DWR的核心是它...

    Ajax学习——DWR的参考书和实用案例学习总结

    **Ajax学习——DWR的参考书和实用案例学习总结** DWR(Direct Web Remoting)是一种优秀的开源框架,专门用于简化Web应用程序中的Ajax(Asynchronous JavaScript and XML)开发。Ajax技术允许网页在不刷新整个页面...

    dwr dwrdwr

    dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr

Global site tag (gtag.js) - Google Analytics