не устанавливая кеш для разных частей Spring MVC 3 с помощью WebContentInterceptor? - PullRequest
4 голосов
/ 02 февраля 2011

Здравствуйте, я разработал динамическое веб-приложение, которое использует Ajax для извлечения данных из баз данных и обновления графического интерфейса, но при тестировании с 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-код так, чтобы он применялся к Ajax-частям веб-приложения (которые управляются с помощью 5 файлов Controller); так что иконки..тек еще кешируются? Путь к этим файлам контроллера будет выглядеть примерно так: "/ admin / **"

Я знаю, что Spring WebContentInterceptor имеет такие свойства, как "setCacheMappings" и "setPathMatcher", но нигде в Интернете я не могу найти примеры их использования в файле конфигурации xml.

ЛЮБАЯ помощь очень ценится, она действительно помогает мне в этом. Спасибо. Джейк

1 Ответ

11 голосов
/ 02 февраля 2011

В вашем <mvc:interceptors> вы можете ограничить путь URL, к которому должен применяться каждый перехватчик, следующим образом:

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

Это все объяснено здесь .

...