Spring HandlerInterceptor与apache tile无法正常工作

时间:2016-07-21 09:56:25

标签: spring spring-mvc apache-tiles

我想拦截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/

尝试了更多方法,但它没有奏效。 我是否需要做其他事情,因为我正在使用瓷砖。

提前致谢。

1 个答案:

答案 0 :(得分:0)

问题不在于瓷砖,问题在于您的{{1}}本身, 在preHandle()中你返回false,这应该是真的。

根据spring docs,如果执行链应继续使用下一个拦截器或处理程序本身,则preHandle()返回true。否则,DispatcherServlet假定这个拦截器已经处理了响应本身。

因为你的preHandle()返回false,你的请求不会继续进行。