`

DWR中处理List

    博客分类:
  • dwr
阅读更多
DWR中处理List2007-12-20 12:314、调用返回JavaBean的java方法

4.1、dwr.xml的配置

<dwr>

<allow>

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

<param name="class" value="com.dwr.TestClass" />

<include method="testMethod4"/>

</create>

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

                    <param name="include" value="username,password" />

</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名称,<param>标签指定要转换的JavaBean属性。

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[i].username);//this is ok

alert(data.password);//error

}

}

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 查询返回list处理

    在这个场景中,"dwr查询返回list处理"涉及到的关键知识点包括: 1. **DWR的配置**:在使用DWR之前,需要在Web应用的配置文件(如`dwr.xml`)中声明允许被远程调用的Java类和方法。这样,DWR引擎才能知道哪些Java...

    关于使用DWR返回对象List的方法

    这篇博客文章“关于使用DWR返回对象List的方法”主要探讨了如何通过DWR框架在Java后端处理数据并以List对象的形式返回给前端JavaScript。 在Web开发中,通常我们需要从服务器获取数据并在客户端展示,DWR通过AJAX...

    DWR中处理集合总结

    1. **处理List**: 当Java方法的参数是一个`List`时,JavaScript端可以将对象包装在数组中传递。例如,如果你有一个包含用户信息的`List`,在JavaScript中可以这样创建数据: ```javascript var users = [ {username...

    JAVA AJAX中使用dwr获取后台list并在页面用表格显示

    通过这个项目,我们可以了解到DWR如何与AJAX结合,实现实时的数据交互,以及如何利用DWR处理二级联动效果。这个例子展示了Java后端与JavaScript前端之间的紧密协作,使用户能够在不刷新页面的情况下获取并显示动态...

    dwr回调函数得到后台list

    在这个场景中,我们关注的是如何在DWR回调函数中处理从服务器返回的`List&lt;Bean&gt;`类型的数据。 首先,我们需要在服务器端定义一个Java方法,该方法会返回一个`List&lt;Bean&gt;`。例如,假设我们有一个名为`User`的Java ...

    DWR使用配置,并用DWR获得返回list类型中的对象,并在页面显示

    // 在此处处理list数据,比如渲染到页面 for (var i = 0; i &lt; list.length; i++) { var item = list[i]; // 假设item有一个名为name的属性 document.getElementById('container').innerHTML += '&lt;div&gt;' + item....

    dwr入门例子 返回list

    在这个“dwr入门例子 返回list”中,我们学习了如何使用DWR从服务器获取列表数据,并在客户端进行处理和展示。这只是一个基础示例,实际应用中,DWR还能处理更复杂的交互,如文件上传、实时数据推送等,进一步提升...

    dwr-demo.rar_DEMO_DWR DE_dwr Demo_list set map

    在这个"DWR Demo"中,我们将会探讨如何使用DWR框架来处理和展示常见的数据结构,如List、Set和Map。 首先,让我们深入了解DWR的核心功能。DWR允许Java方法直接被JavaScript调用,就像它们是本地函数一样,无需手动...

    JAVA AJAX中使用DWR获取后台list并在页面 用表格动态显示

    在这个项目中,DWR被用来实现在不刷新整个页面的情况下,从后台获取list数据并动态地在表格中展示,同时还有二级联动功能的实现,增加了用户操作的便捷性。下面我们将深入探讨这个项目的各个关键技术点。 首先,DWR...

    dwr练习实例(各种数据转换list,map,数组等)

    在这个实例中,我们将探讨DWR如何处理List、Map以及数组等常见的数据结构。 首先,让我们理解DWR的核心功能。DWR的主要作用是创建一个安全、高效的桥梁,使得JavaScript可以直接调用服务器端的Java方法,而无需进行...

    dwr对各种类型返回值的处理实例

    在DWR中,处理各种类型的返回值是其强大功能的一部分,它支持多种数据类型,包括基本类型、对象、数组、集合、Map等。下面将详细介绍DWR如何处理这些不同类型的返回值。 1. **基本类型**: DWR可以轻松处理Java的...

    dwr.rar_dwr_dwr Stri_dwr javabean

    在这个"**dwr.rar_dwr_dwr Stri_dwr javabean**"的压缩包中,我们可能找到了关于DWR如何处理不同类型数据的详细信息,特别是对String、list、map以及JavaBean的操作。 首先,让我们深入理解DWR的核心概念。DWR的...

    DWR 初始,返回字符串&对象&列表

    在DWR中,"返回字符串&对象&列表"是指DWR接口可以处理多种类型的数据返回。下面将详细介绍DWR如何处理这些不同类型的数据: 1. **返回字符串**: 在DWR中,如果你的Java方法返回一个字符串,这个字符串会直接在...

    dwr示例代码,绝对好用

    2. **Java类与Bean**:描述中提到的"调用后台java类返回List,List中存放自定义的javabean",这意味着后端有一个Java类,它可能包含一个或多个方法,这些方法返回一个包含自定义Java Bean的List。Java Bean是一种...

    dwr课件,java,反向ajax

    JavaScript端将接收到一个数组,数组的每个元素对应于List中的一个对象。 2. 返回Map:Java端创建Map并填充分配好的键值对,通过DWR调用返回。在JavaScript端,这将表现为一个JavaScript对象,其中的属性名对应于Map...

    dwr+oracle数据操作

    DWR,全称为Direct Web Remoting,是一种在Web应用中实现JavaScript与服务器端Java代码进行异步通信的技术。它允许开发者在浏览器端直接调用服务器上的Java方法,就像本地JavaScript函数一样,极大地提高了Web应用的...

    DWR联动刷select

    - 定义了URL映射,所有以`/dwr/`开头的请求都将由DWR处理。 2. **配置dwr.xml:** ```xml &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD DirectWebRemoting 2.0//EN" ...

    简单DWR动态下拉菜单

    在这个主题“简单DWR动态下拉菜单”中,我们将深入探讨如何利用DWR来创建一个动态更新的下拉菜单,该菜单可以根据用户的选择即时从服务器获取并显示数据。 首先,DWR的核心是其反向Ajax(Reverse Ajax)技术,它...

    DWR调用及传参总结

    调用带List、Set或Map参数的方法,如`callTestMethod7`,需要创建相应的JavaScript对象数组,每个元素对应List中的一个项,属性与JavaBean一致。在`dwr.xml`中需要声明这些参数的类,以便Java端解析。 在使用DWR时...

Global site tag (gtag.js) - Google Analytics