4

您好,我开发了一个动态 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 个控制器文件控制);以便图标..等仍然被缓存?这些控制器文件的路径类似于“/admin/**”

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

任何帮助将不胜感激,这真的让我很头疼。谢谢。杰克

4

1 回答 1

11

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

<mvc:interceptors>
    <mvc:interceptor>
        <mapping path="/admin/*"/>
        <bean id="webContentInterceptor" ..... />
    </mvc:interceptor>
<mvc:interceptors>

这一切都在这里解释。

于 2011-02-02T00:48:47.930 回答