例子 4, (函数返回值是Collection,参数是List)
1. web.xml,同上
2. dwr.xml
<allow>
// Collection,Map, java.lang,date,math等都默认是已存在的converter这里定义,因为List等也是实现Collection接口的,
所以不用再去定义List的converter了
<convert match="com.cwq.core.dbaccess.HqlCondition" converter="bean">
<param name="include" value="chainconnect,field,operation,value,valuetype">
</convert>
// 定义HqlCondition的converter, valuetype在javabean中默认值为1027
<create javascript="TestDwr" creator="new">
<param name="class" value="com.cwq.modules.frontend.ajax.TestDwr"/>
<include method="get2"/>
</create>
// 定义该类只能操作名为get2的函数
</allow>
import java.util.List;
import com.cwq.modules.frontend.ajax.TestDwr;
import com.cwq.core.dbaccess.HqlCondition;
TestDwr.get2(List);
// 如果用TestDwr.get2(List<>);而且不要上面的import …HqlCondition,dwr读取会出错
在这里用泛型,告诉dwr在List中的对象类型. 也可以不定义.
3. javabean
public class TestDwr {
public Collection get2(List hqlfilter) {
return hqlfilter;
}
}
4. /cwq/test.jsp
<script type="text/javascript">
// 定义回调函数
var callback1 = function callBack(data) {
DWRUtil.setValue("demo1",data[0].field);
// data = [ { valuetype:1017 } ], java函数的返回值是Collection,dwr转换为Array[],HqlCondition的valuetype是int型,默认是1017
}
function call() {
var t1 = { chainconnect:"and", field:"obj.id", operation:"=" };
var a = new Array();
a[0] = t1;
TestDwr.get2(a, callback1);
// ajax调用
}
</script>
<input name="demo1" value=""/>
<input type="button" onclick="javascript:call();"/>
结果: obj.id




















