使用WebContentInterceptor为spring mvc 3的不同部分设置无缓存?

Jak*_*ake 4 ajax spring spring-mvc cache-control interceptor

您好我在那里开发了一个动态Web应用程序,它使用Ajax从数据库中获取数据并使GUI保持最新,但在使用IE8进行测试时,我遇到了缓存问题.

我在webmvc-config.xml文件中使用以下代码来阻止浏览器进行缓存:

<mvc:annotation-driven /> <mvc:interceptors> <bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> <property name="cacheSeconds" value="0"/> <property name="useExpiresHeader" value="true"/> <property name="useCacheControlHeader" value="true"/> <property name="useCacheControlNoStore" value="true"/> </bean> </mvc:interceptors>

并且它完全按照预期工作,但问题是现在浏览器显然没有缓存任何东西.我想知道的是如何修改该xml代码,以便它适用于Web应用程序的Ajax部分(使用5个Controller文件控制); 所以icon..etc仍然被缓存?这些控制器文件的路径类似于"/ admin/**"

我知道Spring WebContentInterceptor具有诸如"setCacheMappings"和"setPathMatcher"之类的属性,但是我无法在线找到这些在xml配置文件中使用的示例.

任何帮助将非常感激,它真的在我的脑袋...谢谢.可靠的人

Cos*_*atu 11

在你<mvc:interceptors>可以限制每个拦截器应适用于URL路径,如下所示:

<mvc:interceptors>
    <mvc:interceptor>
        <mapping path="/admin/*"/>
        <bean id="webContentInterceptor" ..... />
    </mvc:interceptor>
<mvc:interceptors>
Run Code Online (Sandbox Code Playgroud)

这一切都在这里解释.