dwr用起来还是很方便的。
1:去官网下载dwr.jar包。我下载的是dwr-3.0.jar。
复制到WEB-INF/lib目录下。
2:在web.xml文件中添加dwr的信息:
<servlet> <display-name>DWR Servlet</display-name> <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> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
?3:创建dwr的配置文件:dwr.xml
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://directwebremoting.org/schema/dwr30.dtd"> <dwr> <allow> <create creator="new" javascript="test"> <param name="class" value="project.entity.Test"/> </create> <convert match="project.entity.TestBean" converter="bean"></convert> <convert match="project.entity.TestBean2" converter="bean"></convert> <convert match="project.entity.TestBean3" converter="bean"></convert> </allow> </dwr>
?test映射project.entity.Test这个类。
如果是和sturts搭配使用的,要在struts.xml文件中添加一行代码,因为struts的/*会把所有的请求都有转到action的,这样dwr就不起作用,从web.xml文件中就可以看出来,所以要在struts.xml文件中注明:
<constant name="struts.action.excludePattern" value="/dwr.*" />
?
4:上面这些配置好之后,可以打开服务器,访问:http://ip:8080/项目名/dwr,可以看到有内容和一个映射的类的链接,点进去就能看到所需要的js文件,将三个.js文件都下载下来放到/dwr/路径中或者/dwr/interface/。
<script type='text/javascript' src='../dwr/interface/test.js'></script> <script type='text/javascript' src='../dwr/engine.js'></script> <script type='text/javascript' src='../dwr/util.js'></script>
?5:开始写调用的js方法了:
<script type="text/javascript"> var current_html=null; function getRecords(){ test.getRecords(createList); } function createList(data1){ datahtml.innerHTML= data1; } function MyShow(){ timer = window.setInterval("getRecords()", 2000); } </script>
?test就是映射的java类,调用这个类的getRecords方法,然后将返回值传给createList这个方法,createList是回调函数,是用来处理所调用的java方法的返回值的。返回的值给了data1,然后就可以使用了,我是将这个值显示在一个td中。
MyShow这个方法是控制每2s执行一次getRecords这个js方法。这样就可以实现页面不刷新数据每2s更新一次了。
<body leftmargin="0" topmargin="0" onload="MyShow()">
?在body加载完就开始执行MyShow这个方法了。