DWR和Spring Interceptor设置

时间:2014-07-13 22:15:18

标签: java ajax spring spring-mvc dwr

我希望我的所有DWR 3.0请求都能通过Spring 2.5 HandlerAdapter拦截器进行拦截。 这是app-servlet.xml设置。

<dwr:controller id="dwrController" debug="true" />
<dwr:url-mapping interceptors="myInterceptors" /> 
<dwr:configuration />

<util:list id="myInterceptors" >
  <!-- Interceptors -->
  <bean id="roleInterceptor" class="mypackage.RoleInterceptor">
    <property name="userRoleDAO" ref="userRoleDAO" />
    <property name="pageNavigationRepository" ref="pageNavigationRepository" />
    <property name="portalAuditRepository" ref="portalAuditRepository" />
  </bean>
</util:list>

以下是我对DWR控制器的web.xml设置。

  <servlet>
     <servlet-name>dwr</servlet-name>
     <servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
     <init-param>
       <param-name>debug</param-name>
       <param-value>true</param-value>
     </init-param>
 </servlet>
 <servlet-mapping>
     <servlet-name>dwr</servlet-name>
     <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

此设置不起作用,DWR请求不会调用roleInterceptor。我对非dwr spring请求使用相同的拦截器,并调用拦截器。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

经过一些研究,我得到了这个工作。 dwr控制器映射和dwr url maapping仅在我使用Spring DispatcherServlet而不是DwrSpringServlet来处理所有我的/ dwr / *请求时才有效。我更新了web.xml,并能够通过Spring MVC拦截器bean拦截所有dwr AJAX请求。