如果Java方法返回的是JavaBean,则要做以下调整。
1.dwr.xml的配置增加了<convert>标签。dwr.xml全部代码如下。
1 |
<dwr> <allow> <create creator="new" javascript="testJavaclass" scope="application"> <param name="class" value="com.dwr.testJavaclass"/> <include method="testMethod" /> </create> <convert converter="bean" match="bean.DuanInfo" /> </allow> </dwr> |
convert 元素的作用是告诉DWR在服务器端Java对象表示和序列化的JavaScript之间如何转换数据类型。
一般将JavaBean转化为JavaScript中的对象类型。
convert=“bean” 属性指定要将JavaBean转换到JavaScript中。
match 属性指定要转换的JavaBean的完整路径名。
param 标签指定要转换的JavaBean的属性,此标签可省略,认为是转换所有属性。
2.在JavaScript 中调用。
调用没有改变,和(1)说的一样
3.对返回值的处理
此时我们将返回值看作是一个Object类型,因此在JavaScript中使用Object的用法调用。比如:
1 |
testJavaclass. testMethod(k,function(vector) { if(vector == null || vector==[]) { return; } for(var i =0 ; i<vector.length;i++) { var a = vector[i].offsetX; var b = vector[i].offsetY; } } |
上面的这个例子返回的是Vector类型,Vector里边存的是Bean类型,这样我们可以循环得到所有返回值。>