2010年04月23日   码农之路   7,384 次浏览
DWR最大的好处就是可以直接从页面调用后台的方法,用起来直接方便。但是一般我们只是传简单的字符串,那么怎样通过DWR来传数组或表了。
下面我将通过具体例子来讲解:
1、首先是DWR的配置文件java2Script.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <allow> <create creator="spring" javascript="rmiHandleService"> <param name="beanName" value="rmiHandleService"/> </create> </allow> <signatures> <![CDATA[ import java.util.Map; import java.util.List; import javax.servlet.http.HttpSession; rmiHandleService.getReturnMessageBodyForList(Map<String,String>,List<Map>); ]]> </signatures> </dwr> |
这个文件会DWR的都看得懂,最主要的就是16行的函数签名,说明这个函数传参的类型。
2、再就是页面上的JS代码了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function onSaveFuncList() { // json用来保存需要传的一般参数 var json = { FUNCGROUPID:clickAppId, mainRmiId:'020406', MID:'0204' }; var arr = new Array(); // 用来保存需要传给后台的数组 var itemselector=$("itemselector"); if(!Ext.isEmpty(itemselector.getValue())) { var id = itemselector.getValue().split(','); for(var i = 0; i < id.length; i++) { // 将数据按键值对保存到数组中 arr.push({FUNCGROUPID:clickAppId,FUNCID:id[i]}); } } // 通过DWR调用后台方法 rmiHandleService.getReturnMessageBodyForList(json, arr, function(obj) { if(obj.RETURNRCODE == '000000') { Ext.topShow.msg('修改成功:', '已保存到数据库.'); } else { Ext.MessageBox.alert("提示:", "操作失败!"); } }); } |
通过上面我们可以看到,用这个DWR实现了传MAP和LIST。
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。