我想拦截spring MVC中的每个请求来执行某些任务。我为此配置了HandlerInterceptor,但由于某种原因它无法正常工作。
public class TestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
System.out.println("Pre-handle");
return false;
}
}
弹簧servlet.xml中
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd ">
<mvc:interceptors>
<bean class="com.abc.controller.TestInterceptor" />
</mvc:interceptors>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass">
<value>
org.springframework.web.servlet.view.tiles3.TilesView
</value>
</property>
</bean>
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
</bean>
</beans>
我提到这个链接来实现这个: - http://viralpatel.net/blogs/spring-mvc-interceptor-example/
尝试了更多方法,但它没有奏效。 我是否需要做其他事情,因为我正在使用瓷砖。
提前致谢。
答案 0 :(得分:0)
问题不在于瓷砖,问题在于您的{{1}}本身, 在preHandle()中你返回false,这应该是真的。
根据spring docs,如果执行链应继续使用下一个拦截器或处理程序本身,则preHandle()返回true。否则,DispatcherServlet假定这个拦截器已经处理了响应本身。
因为你的preHandle()返回false,你的请求不会继续进行。