2011-02-02 18 views
4

こんにちは、データベースからデータをフェッチしてGUIを最新の状態に保つためにAjaxを使用する動的Webアプリケーションを開発しましたが、IE8でテスト中にキャッシュ問題が発生しています。WebContentInterceptorを使用してspring mvc 3の異なる部分にキャッシュを設定しないでください。

私はキャッシュからブラウザを停止するために私の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ファイルを使って制御)に適用する方法です。アイコンなどはまだキャッシュされていますか?これらのコントローラファイルへのパスは、 "/ admin/**"のようなものになります。

Spring WebContentInterceptorは "setCacheMappings"や "setPathMatcher"などのプロパティを持っていますが、これらの例はどこにもありませんXML設定ファイルで使用しています。

何か助けていただければ幸いです。本当にありがとうございました。ありがとうございました。ジェイク

答えて

11

あなた<mvc:interceptors>次のようにあなたは、各インターセプタを適用すべきURLパスを制限することができます。

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

は、それはすべてのhereを説明しています。

+0

素晴らしい、ありがとうコスティは完璧に働いた。いいリンクも。同じインターセプタに複数のマッピングパスを追加することもできます。そして、この問題を抱えていて、このポストを遭遇したことのある人のために、インターセプタに含めるがすべてのパスに適用されます。 – Jake

+0

正しく動作するためには、私のコードはでなければなりません – jln646v

関連する問題