ajax 之 dwr配置实例

本文介绍了一种使用Direct Web Remoting (DWR) 和 Ajax进行前后端交互的技术实践。通过配置dwr.xml文件,实现Java对象与JavaScript之间的无缝转换,并展示了具体的调用示例和处理类、实体类代码。

dwr.xml

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> <dwr> <allow> <!-- convert converter = "bean" match = "developerworks.ajax.bean.Apartment" --> <create creator = "new" javascript = "ListName"> <param name="class" value= "developerworks.ajax.dao.ListName" /> <!-- include method = "findStr" /> <include method = "findCity" /> <include method = "findUser" /> <include method = "findList" /> <include method = "findByname" /> <include method = "strfindList" /> <include method = "strfindMap" /--> </create> <convert converter="bean" match="developerworks.ajax.bean.User"> <param name="include" value="name,age" /> </convert> </allow> </dwr>

test.js

function calllist(){ var t=$("hd").value; if(t=="无参无返回值"){ ListName.findStr(callBackListName); }else if(t=="有简单返回值"){ ListName.findCity(callBackListName2); }else if(t=="有简单参数"){ var t="abc"; ListName.findByname(t,callBackListName3); }else if(t=="返回javabean"){ ListName.findUser(callBackListName4); }else if(t=="返回List"){ ListName.findList(callBackListName5); }else if(t=="有参并返回List"){ var str="hello"; ListName.strfindList(str,callBackListName6); }else if(t=="返回Map"){ ListName.strfindMap(callBackListName7); }else{ alert("没有匹配"); } } function callBackListName(data){ alert("无参无返回值"); } //有简单返回值 function callBackListName2(data){ alert("有简单返回值:"+data); } //有简单参数 function callBackListName3(data){ alert("有简单参数:"+data); } //返回javabean function callBackListName4(data){ alert("返回javabean:\n"+data.name+data.age); } //返回List function callBackListName5(data){ alert("返回List:\n"); var sb=""; for(var i=0;i<data.length;i++){ sb=sb+data[i].name+"+"+data[i].age+"\n"; } alert(sb); } //有参并返回List function callBackListName6(data){ alert(data.length); var sb=""; sb=sb+data[0]+"\n"; for(var i=1;i<data.length;i++){ sb=sb+data[i].name+"+"+data[i].age+"\n"; } alert(sb); } //有参并返回Map function callBackListName7(data){ alert("callBackListName7"); var sb=""; //sb=sb+data[0]+"\n"; for(var pro in data){ var bean=data[pro]; sb=sb+bean.name+"+"+bean.age+"\n"; } alert(sb); }

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>developerWorks - Ajax with DWR</title> <link rel="stylesheet" type="text/css" href="style.css" mce_href="style.css" media="screen"/> <mce:script type='text/javascript' src="dwr/interface/ListName.js" mce_src="dwr/interface/ListName.js"></mce:script> <mce:script type='text/javascript' src="dwr/engine.js" mce_src="dwr/engine.js"></mce:script> <mce:script type='text/javascript' src="dwr/util.js" mce_src="dwr/util.js"></mce:script> <mce:script type='text/javascript' src="test.js" mce_src="test.js"></mce:script> <mce:script type="text/javascript"><!-- function getvalue(object){ var m=object.options[object.selectedIndex].text document.searchform.hd.value=m; } // --></mce:script> </head> <body> <h1>Ajax DWR</h1> <form id="searchform" name="searchform"> <br/> <select id="selectA" onchange="getvalue(this)"> <option>无参无返回值</option> <option>有简单返回值</option> <option>有简单参数</option> <option>返回javabean</option> <option>返回List</option> <option>有参并返回List</option> <option>返回Map</option> </select> <input type="text" id="hd" name="hd" /><br/> <input type="button" id="searchbox" value="提交" onclick="calllist()" /> </form> </html>

处理类ListName.java

package developerworks.ajax.dao; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import developerworks.ajax.bean.User; public class ListName { public ListName() { super(); } public String findStr(){ return "��»�"; } public String findCity(){ return "Beijing"; } public User findUser(){ User user=new User("刘德华",50); return user; } //返回List public List findList(){ ArrayList list=new ArrayList(); User user1=new User("刘德华",50); User user2=new User("张学友",40); User user3=new User("成龙",80); list.add(user1); list.add(user2); list.add(user3); /*list.add("y1"); list.add("y2"); list.add("y3");*/ return list; } //有参数并返回List public List strfindList(String test){ System.out.println(test); ArrayList list=new ArrayList(); User user1=new User("刘德华",50); User user2=new User("张学友",40); User user3=new User("成龙",80); list.add(test); list.add(user1); list.add(user2); list.add(user3); return list; } //有参数并返回List public Map strfindMap(){ Map map=new HashMap(); User user1=new User("刘德华",50); User user2=new User("张学友",40); User user3=new User("成龙",80); map.put("user1", user1); map.put("user2", user2); map.put("user3", user3); return map; } public String findByname(String name){ System.out.println(name); return name+"helloworld"; } }

实体类 User.java

package developerworks.ajax.bean; public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public User(String name, int age) { super(); this.name = name; this.age = age; } }

(SCI三维路径规划对比)25年最新五种智能算法优化解决无人机路径巡检三维路径规划对比(灰雁算法真菌算法吕佩尔狐阳光生长研究(Matlab代码实现)内容概要:本文档主要介绍了一项关于无人机三维路径巡检规划的研究,通过对比2025年最新的五种智能优化算法(包括灰雁算法、真菌算法、吕佩尔狐算法、阳光生长算法等),在复杂三维环境中优化无人机巡检路径的技术方案。所有算法均通过Matlab代码实现,并重点围绕路径安全性、效率、能耗和避障能力进行性能对比分析,旨在为无人机在实际巡检任务中的路径规划提供科学依据和技术支持。文档还展示了多个相关科研方向的案例与代码资源,涵盖路径规划、智能优化、无人机控制等多个领域。; 适合人群:具备一定Matlab编程基础,从事无人机路径规划、智能优化算法研究或自动化、控制工程方向的研究生、科研人员及工程技术人员。; 使用场景及目标:① 对比分析新型智能算法在三维复杂环境下无人机路径规划的表现差异;② 为科研项目提供可复现的算法代码与实验基准;③ 支持无人机巡检、灾害监测、电力线路巡查等实际应用场景的路径优化需求; 阅读建议:建议结合文档提供的Matlab代码进行仿真实验,重点关注不同算法在收敛速度、路径长度和避障性能方面的表现差异,同时参考文中列举的其他研究案例拓展思路,提升科研创新能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值