Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

setting no cache for different parts of spring mvc 3 using WebContentInterceptor?

Hi there I have developed a dynamic web application that uses Ajax to fetch data from databases and keep the GUI up to date but while testing it with IE8 I am experiencing caching issues.

I used the following code in my webmvc-config.xml file to stop the browser from caching:

<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>

and it works exactly as it should, but the problem is that now the browser obviously doesn't cache anything. what I want to know is how to modify that xml code so that it applies to the Ajax parts of the web app (which are controlled using 5 Controller files); so that the icons..etc are still cached? The path to these controller files would be something like "/admin/**"

I know that the Spring WebContentInterceptor has properties such as "setCacheMappings" and "setPathMatcher" but there is nowhere online that I can find examples of these being using in the xml config file.

ANY help would be much appreciated, it's really doing my head in.. Thanks. Jake

like image 970
Jake Avatar asked Dec 21 '22 18:12

Jake


1 Answers

In your <mvc:interceptors> you can restrict the URL path each interceptor should apply to, as follows:

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

It's all explained here.

like image 158
Costi Ciudatu Avatar answered Apr 27 '23 19:04

Costi Ciudatu