DWR使用步骤
DWR (direct web remote) 是一个 基于服务器端的 ajax 框架 。通过该框架, 我们可以使用 js 来直接调用 java 方法。Prototype.js是一个 基于浏览器其端的ajax框架,只需要引入prototype.js即可使用。Jquery:1. 引入 jar 包到 WEB-INF/lib2. web.xml 中写入:<servlet><servlet-name>dwr-invoker</ servlet-name><servlet-class>uk.ltd.getahead.dwr.DWRServlet</ servlet-class><init-param><param-name>debug</ 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. 建立 java 类 ( 普通 java 类即可,不是 servlet) TestClasspublicclassTestClass publicvoidtestMethod1()System. out .println("hello dwr!");4. 在/WEB-INF/dwr.xml 中配置 java 类:<?xmlversion ="1.0"encoding ="UTF-8" ?><! DOCTYPEdwr PUBLIC "-/GetAhead Limited/DTD Direct Web Remoting 2.0/EN""http:/www.getahead.ltd.uk/dwr/dwr20.dtd"><dwr><allow ><createcreator="new"javascript="testClass"><param name="class" value = "com.dwr.TestClass" /> </ create ></ allow ></ dwr >5. 在 1.html 中使用,需要首先引入: ( 需要保证 dwr 这个目录位于 web应用的根目录 )<scriptsrc =dwr/interface/testClass.js></script ><scriptsrc =dwr/engine.js></script><scriptsrc =dwr/util.js></script >6.在 javascript方法中调用后台java类方法:functiontest()testClass.testMethod1();用dwr 调用 有参数或有返回值的java 方法 :functiontest()testClass. javaMethod2 ( "bbb" , parseInfo);/ 若 java 方法需要传参,处理响应数据的函数名放到参数列表后面。functionparseInfo( data )document . getElementById( "div1"). innerHTML =data ;DWR调用的简单顺序:1.js 调用相应的方法发送请求。/dwr/td.test12.DWRServlet 处理相关请求。根据dwr.xml 配置内容,调用相应的java 类的方法。3. DWRServlet 将处理完的数据返回给客户端。其他知识点:1. dwr 中的得到 request对象:HttpServletRequest req = WebContextFactory.get().getHttpServletRequest();2. javascript顺序执行的问题:functiontest8( data )/ DWREngine.setAsync(false); /将 ajax 改成同步方式 , 可以实现顺序执行。 testClass . testMethod7 (function( a)alert( a););alert( "ttt");4. javabean 转化成 js 中的对象:publicAddress test6()returnnew Address(" 中国 " , " 北京 " , " 海淀区" );<convertmatch="com.puckasoft.java311.beans.Address"<param name="include"value ="country,province"converter ></ param>="bean" ></ convert>td.test6(function(data)alert(data.country););5. 集合中的对象为 javabean 时,如何使用:publicList test7()List list =new ArrayList();for ( inti=0;i<5;i+)list.add(new Address(" 中国 " , " 北京 " +i, " 海淀区 " );returnlist;publicList test8()List list =new ArrayList();for ( inti=0;i<5;i+)list.add(new User( "a" ,3, new Address(" 中国 " , " 北京 " +i, " 海淀区 " );returnlist;<convertmatch="com.puckasoft.java311.beans.Address"converter ="bean" ><param name="include"value ="country,province"></ param></ convert><convertmatch="com.puckasoft.java311.beans.User"converter="bean" ></ convert><signatures><!CDATAimport java.util.*;import com.puckasoft.java311.beans.*;import com.puckasoft.java311.ajax.TestDwr;TestDwr.test7(List<Address>);TestDwr.test8(List<User>);></ signatures>td . test7 ( function( data )alert( data . length);alert( data 3. province););td . test8 ( function( data )alert( data 0. addr . country);alert( data 0. name););(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)