我使用拦截器来缓存一些很少更新的页面。效果很好,这是代码:
<bean class="org.springframework.web.servlet.mvc.WebContentInterceptor">
<property name="cacheSeconds" value="2592000"/>
<property name="useExpiresHeader" value="true"/>
<property name="useCacheControlHeader" value="true"/>
<property name="useCacheControlNoStore" value="true"/>
<property name="cacheMappings">
<props>
<prop key="/my/**">0</prop>
<prop key="/login">0</prop>
<prop key="/logout">0</prop>
<prop key="/change-language">0</prop>
</props>
</property>
</bean>
基本上,它说明了以下内容:缓存除cacheMapping
部分之外的所有页面。但我有一些问题 - 如果更改语言,请求本身不会被缓存,但在实际更改后我只是重定向到当前页面,如果此页面被缓存(通过以前的设置) - 用户无法看到更改。我尝试在标题中发送no-cache
(在重定向请求中),但似乎拦截器的设置有更多的优先级...
有什么建议我该如何解决?提前谢谢。