DWR框架的使用说明

更新时间:2023-05-17 02:46:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DWR框架的使用说明

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

2.1、dwr.xml的配置

配置同1.1

<dwr>

<allow> <create creator="new" javascript="testClass" > <include method="testMethod2"/> </create> </allow>

</dwr>

2.2、javascript中调用

Function callTestMethod2(){

}

Function callBackFortestMethod2(data){

} alert("the return value is " + data); testClass.testMethod2(callBackFortestMethod2);

DWR框架的使用说明

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

3.1、dwr.xml的配置

<dwr>

<allow> <create creator="new" javascript="testClass" > <include method="testMethod3"/> </create> </allow>

</dwr>

3.2、javascript中调用

Function callTestMethod3(){

var data = “test String”;

}

注意:

有参数也有返回值的时候:

function callGetSortNum(){

var depIds=document.all.departIds.value;

var data = {"departIds":depIds};//构造参数,date实际上是一个object

security_getUserSortNum.getSortNumber(data,numberGettedCallback); testClass.testMethod3(data);

}

function numberGettedCallback(sortNum){

if(!sortNum){

return ;

}

document.all.sortID.value=sortNum;

}

DWR框架的使用说明

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"/>

</allow>

</dwr>

<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中调用

Function callTestMethod4(){

}

Function callBackFortestMethod4(data){

}

//不知道属性名称时,使用如下方法 for(var property in data){ } //知道属性名称时,使用如下方法 alert(ername); alert(data.password); alert("property:"+property); alert(property+":"+data[property]); testClass.testMethod4(callBackFortestMethod4);

DWR框架的使用说明

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

5.1、dwr.xml的配置

<dwr>

<allow> <create creator="new" javascript="testClass" > <include method="testMethod5"/> </create> <convert converter="bean" match="com.dwr.TestBean"> </convert> </allow>

</dwr>

5.2、javascript中调用

Function callTestMethod5(){

} var data = { username:"user", password:"password" } testClass.testMethod5(data);

DWR框架的使用说明

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

6.1、dwr.xml的配置

<dwr>

<allow> <create creator="new" javascript="testClass" > <include method="testMethod6"/> </create> <convert converter="bean" match="com.dwr.TestBean"/>

</allow>

</dwr>

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

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

Function callTestMethod6(){

}

Function callBackFortestMethod6(data){

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

} for(var i=0;i<data.length;i++){ } //知道属性名称时,使用如下方法 for(var i=0;i<data.length;i++){ } alert(data[i].username); alert(data[i].password); for(var property in data[i]){ } alert("property:"+property); alert(property+":"+data[i][property]); testClass.testMethod6(callBackFortestMethod6);

DWR框架的使用说明

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>

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

Function callTestMethod7(){

} var data; // data实际上是一个object数组,即数组的每个元素均为object data = [ ]; testClass.testMethod7(data); { }, { } username:"user2", password:" password2" username:"user1", password:"password2"

DWR框架的使用说明

注意:

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

function callBackFortestMethod(data){

}

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

function callTestMethod (){

var data; //date实际上是一个object,其属性名为Map的key,属性值为Map的value data = { "key1":{ }, "key2":{ } username:"user2", password:" password2" username:"user1", password:"password2" //其中data接收方法的返回值 for(var property in data){ } var bean = data[property]; alert(ername); alert(bean.password);

};

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>

DWR框架的使用说明

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中

本文来源:https://www.bwwdw.com/article/1lz4.html

Top