SpringMVC中使用DWR

  SpringMVC中使用DWR重点在其配置当中。

  1.  web.xml文件的配置

    在DispatcherServlet中增加dwr的拦截来取代DwrServlet。

  更改配置如下:

  

 1  <servlet>
 2     <servlet-name>mvc</servlet-name>
 3     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 4     <load-on-startup>1</load-on-startup>
 5   </servlet>
 6   
 7   <!-- 配置dwr拦截 -->
 8   <servlet-mapping>
 9       <servlet-name>mvc</servlet-name>
10       <url-pattern>/dwr/*</url-pattern>
11   </servlet-mapping>
12   <servlet-mapping>
13     <servlet-name>mvc</servlet-name>
14     <url-pattern>/</url-pattern>
15   </servlet-mapping>

  当然如果不想用spring的servlet 也可以用dwr提供的DWRSpringServlet。配置如下:

  

 1  <servlet>
 2   <servlet-name>dwr</servlet-name>
 3   <servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
 4   <init-param>
 5     <param-name>debug</param-name>
 6     <param-value>true</param-value>
 7   </init-param>
 8 </servlet>
 9 <servlet-mapping>
10   <servlet-name>dwr</servlet-name>
11   <url-pattern>/dwr/*</url-pattern>
12 </servlet-mapping>

  2.  配置springMVC文件

  在配置springMVC文件之前,需要在spring配置文件中增加dwr的命名空间。根据官方文档说法:如果用命名空间或者注解的话需要spring2.X以上版本,DWR2.X以上版本。

  需要加入的命名空间如下(红色部分):

  

1 <beans
2   xmlns="http://www.springframework.org/schema/beans"
3   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4   xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
5   xsi:schemaLocation="http://www.springframework.org/schema/beans
6     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
7     http://www.directwebremoting.org/schema/spring-dwr
8     http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">

  dwr的配置如下:

  

1 <!-- dwr配置 -->
2     <dwr:annotation-config/>
3     <dwr:controller id="dwrController" debug="true">
4          <dwr:config-param name="activeReverseAjaxEnabled" value="true"/>
5     </dwr:controller>
6     <dwr:url-mapping />
7     <dwr:annotation-scan base-package="com.bigbang.*" scanDataTransferObject="true" scanRemoteProxy="true" />
8     

  dwr:annatation-config是开启dwr注解扫描的,根据dwr:annatation-scan配置的base-package扫描该路径下的类,后面两个配置即是常用的两种注解类型。

  dwr:controller仅限于用在springMVC里面,它可以增加一些配置参数,例如activeReverseAjaxEnabled 开启反向ajax用于推送。如果不配置controller的话,就需要配置dwr:url-mapping,不然会导致无法找到页面中dwr需要的engine.js以及interface.js文件。

  如果不用注解的话,也可以使用配置的方法来做,示例如下:

  

1 <bean id="timeConvert" class="com.mycompany.ui.util.TimeConvert">
2   <dwr:remote javascript="AjaxTimeConvert">
3     <dwr:include method="convert" />
4   </dwr:remote>
5 </bean>

  以上配置中dwr:remote相当于注解@RemoteProxy,dwr:include相当于注解@RemoteMethod,如果要增加转换的Object数据,可以使用dwr:convert,相当于注解@DataTransferObject。

原文地址:https://www.cnblogs.com/bigbang92/p/springMVC-DWR-Annotation.html