很久没上来冒泡了 ,把dwr的使用经验搁上来,以后备用。

使用dwr当然少不了 dwr.jar 包了,放进去,然后在web.xml中配置我们的dwrServlet
代码贴上:
<servlet> <servlet-name>DwrServlet</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <load-on-startup>12</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DwrServlet</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
这个搞定了之后,写个dwr.xml放在WEB-INF下,配置指定的java 类。
看代码:
<dwr> <allow> <create creator="new" javascript="MainViewAjaxUtil" scope="application"> <param name="class" value="com.xll.ajax.MainViewAjaxUtil" /> </create> </allow> </dwr>
<allow> 标签中包括可以暴露给 javascript 访问的东西,
<create> 标签中指定 javascript 中可以访问的 java 类,并定义 DWR 应当如何获得要进行远程的类的实例。
creator="new" 属性指定 java 类实例的生成方式, new 意味着 DWR 应当调用类的默认构造函数来获得实例,其他的还有 spring 方式,通过与 IOC 容器 Spring 进行集成来获得实例等等。
javascript=" MainViewAjaxUtil" 属性指定 javascript代码访问对象时使用的名称。<param> 标签指定要公开给 javascript 的 java 类名。
JSP 页面中调用:
<script type='text/javascript' src='/dwr/interface/MainViewAjaxUtil.js'></script> <script type='text/javascript' src='/dwr/engine.js'></script> <script type='text/javascript' src='/dwr/util.js'></script>
以上三条中下面两条当你用到dwr时是jsp应该包含的,把你在dwr.xml中配置好要用到的访问对象也包含进来,如第一条。
然后在script代码中如下使用:比如你的MainViewAjaxUtil.java 中有方法叫 reloadXxx(),希望页面7秒刷新reloadXxx()中的内容,可以这么做,
<body onload="init()"> .... </body> <script type="text/javascript"> function init(){ window.setTimeout("reload()",7000); } function reload(){ MainViewAjaxUtil.Xxx( function(data){ .....} //data 是用来接收reloadXxx()方法的返回值对象的,data中的数据可以直接 data.mm获取 ); } </script>
当你需要reloadXxx()方法返回一个你创建的类时,这是需要在dwr.xml中做如下配置,比如我reloadXxx()返回一个Human对象:
<dwr> <allow> <create creator="new" javascript="MainViewAjaxUtil" scope="application"> <param name="class" value="com.xll.ajax.MainViewAjaxUtil" /> </create> [b]<convert converter="bean" match="com.xll.Human"> <param name="include" value="name,age"/> </convert>[/b] </allow> </dwr>
加粗部分为需要加入的,其中value是这个Human所包含的属性
这样在页面执行无刷新更新就完成了。
如果有不对的地方请直接指出,学习,学习!