我希望我的所有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请求使用相同的拦截器,并调用拦截器。我在这里错过了什么吗?
答案 0 :(得分:1)
经过一些研究,我得到了这个工作。 dwr控制器映射和dwr url maapping仅在我使用Spring DispatcherServlet而不是DwrSpringServlet来处理所有我的/ dwr / *请求时才有效。我更新了web.xml,并能够通过Spring MVC拦截器bean拦截所有dwr AJAX请求。