Struts2.0与DWR2.0 的整合(带完整示例)

本文介绍如何将DWR 2.0与Struts2框架结合使用,通过示例代码展示了配置dwr.xml文件及前端页面的具体实现方式。

DWR2.0默认支持webwork,在网上找了些资料有兄弟已经走在了我前面了,呵呵。不过我已经将其打包成了dwr4struts2.jar,见附件。

dwr.xml文件:

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>     
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">     
  3. <dwr>     
  4.     <allow>     
  5.         <create creator="none" javascript="DWRAction">  
  6.             <param name="class" value="org.directwebremoting.struts2.DWRAction"/>  
  7.             <include method="execute"/>  
  8.         </create>  
  9.         <convert converter="bean" match="org.directwebremoting.struts2.ActionDefinition">  
  10.           <param name="include" value="namespace,action,method,executeResult" />  
  11.         </convert>  
  12.         <convert converter="bean" match="org.directwebremoting.struts2.AjaxResult"/>  
  13.         <!-- 相应的Struts2的Action -->  
  14.         <convert match="com.*.*Action" converter="bean"/>  
  15.         <!-- 如果有复杂类型要转换,如List中有多个JavaBean对象 -->  
  16.         <convert match="com.*.model.*Bean" converter="bean"/>  
  17.     </allow>  
  18. </dwr>  

 

testDwr.htm文件:

xml 代码
  1. <html>  
  2.     <head>  
  3.         <script type='text/javascript' src='/js/dwr/DWRActionUtil.js'></script>  
  4.         <script type='text/javascript' src='/dwr/interface/DWRAction.js'></script>  
  5.         <script type='text/javascript' src='/dwr/engine.js'></script>  
  6.         <script type='text/javascript' src='/dwr/util.js'></script>  
  7.         <script language="javascript">  
  8.                 function testDwr(){   
  9.                     DWRActionUtil.execute({namespace:'/',action:'special',executeResult:'false'}, 'frmDwr', writePage);   
  10.                 }   
  11.                 function writePage(data){                   alert("departure = "+data.departure);   
  12.                 }   
  13.         </script>  
  14.     </head>  
  15.     <body>  
  16.         <form name="frmDwr" method="post" action="" id="frmDwr">  
  17.             <input name="departure" value="PEK"/>  
  18.             <input type="button" value="测试" onclick="testDwr();">  
  19.         </form>  
  20.     </body>  
  21. </html>  

DWR是Direct Web Remoting 的缩写。 DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单. DWR 是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR servlet 以及 JavaScript 库。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC 工具包,但是它是最成熟的,而且提供了许多有用的功能。 从最简单的角度来说,DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。这意味着客户端代码再也不需要直接处理 XMLHttpRequest 对象或者服务器的响应。不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。甚至不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用。 DWR 是作为 Web 应用程序中的 servlet 部署的。把它看作一个黑盒子,这个 servlet 有两个主要作用:首先,对于公开的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的 JavaScript 包含存根函数,代表 Java 类上的对应方法并在幕后执行 XMLHttpRequest。这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScriptDWR 还提供了帮助执行常见的用户界面任务的 JavaScript 工具函数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值