我对XML的这一部分:Spring MVC的拦截器映射问题
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/statics/**" />
<bean class="com.company.website.servlet.StaticsHandlerInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/data/**" />
<bean class="com.company.website.servlet.AJAXHandlerInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.company.website.servlet.PageHandlerInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
我有三个不同的拦截器是有原因的,虽然StaticsHandlerInterceptor
只是preHandle
方法返回true
(我的所有静态内容(JS ,css等))。第二个是针对AJAX请求的。第三个是实际页面。我所看到的是静态和AJAX拦截器在它们应该被调用时被调用;然而,在他们看来,页面拦截器总是被调用。我只想要为页面调用页面拦截器。我如何做到这一点?
问题是我有像'〜/ index'和'〜/ preferences'这样的URL。如果URL是'〜/ data/**',那么这是一个AJAX请求。如果URL是'〜/ statics/**',那么这是对静态内容的请求。否则,这将是一个页面的请求,我的页面上没有扩展名。 – Nik