DWR的使用
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架 (1)导入dwr.jar,commons-logging-1.2.jar (2)在web.xml文件中添加
<!-- 配置DWR的核心Servlet --> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <!-- 下面两个可以不用配置 --> <init-param> <param-name>crossDomainSessionSecurity</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>allowScriptTagRemoting</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> (3)在WEB-INF文件夹下建dwr.xml文件
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd"> <dwr> <allow> <create creator="new" javascript="DwrTest"> <param name="class" value="cn.axin.dwr.DWRTest" /><!-- 自定义的类 --> </create> <create creator="new" javascript="AjaxDate"> <param name="class" value="java.util.Date" /> </create> </allow> </dwr> DWRTest类
public class DWRTest { public int getData(int index){ Random rand = new Random(); return rand.nextInt(index); } } 通过修改dwr.xml文件,可以将自定义的java类公开给javascript远程调用 (4)在JSP页面进行使
<script type="text/javascript" src="dwr/engine.js"></script> <script type="text/javascript" src="dwr/util.js"></script> <script type="text/javascript" src="dwr/interface/DwrTest.js"></script> <script type="text/javascript" src="dwr/interface/AjaxDate.js"></script> <script type="text/javascript"> function doTest1() { AjaxDate.toString(callBack1); } function callBack1(data)//data是Date类的toString方法返回值 { window.alert("现在的时间是:" + data); } function doTest2() { DwrTest.getData(123,callBack2);//123是getData方法的参数,callBack2是回调函数 } function callBack2(data)//data是getData方法的返回值 { window.alert("随机数:" + data); } </script> </head> <body> <input type="button" value="显示当前时间,我变" onclick="doTest1()"><br/><br/> <input type="button" value="我点,变了" onclick="doTest2()"> </body>DwrTest.js和AjaxDate.js命名来源于你的dwr.xml的 <create creator="new" javascript="DwrTest"> <create creator="new" javascript="AjaxDate"> javascript属性的配置名
注意啦: 我这<script type="text/javascript" src="dwr/engine.js"></script> 如果把这两行放在前面就没有用了,而DWR官网是这样子的 <script src='/[YOUR-WEBAPP-CONTEXT]/dwr/interface/[YOUR-SCRIPT].js'></script> 就这问题可害苦了我啊.......... 可能在你那不是这样子的,只有测试了才懂地 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |