2010-08-18 5 views
0

У меня есть страница jsf, содержащая некоторые javascript. И я хочу предотвратить кеширование с добавлением временных меток к своим URL-адресам. Это можно сделать с «простым» jsf без добавления java-кода?JSF с меткой времени

например:

<script type="text/javascript" src="file.js?ts=#{timestamp}"></script> 

ответ

3

Это не совсем правильный способ предотвратить кэширование. Используйте Filter, который проверяет запрошенный URI, и если есть расширение .js, или текст текста/javascript типа содержимого ответа, затем добавьте заголовки, которые предотвращают кеширование. См. this answer для примера реализации.

+1

Интересно. В первый раз я вижу fmt: timestamp. Где это задокументировано? По крайней мере, не [здесь] (https://javaserverfaces.dev.java.net/nonav/docs/2.0/pdldocs/facelets/index.html). – BalusC

+0

@BalusC hmm, похоже, специфический juchl. спасибо за примечание. – Bozho

4

Альтернативой является объявление java.util.Date как управляемый bean-компонент.

<managed-bean> 
    <managed-bean-name>date</managed-bean-name> 
    <managed-bean-class>java.util.Date</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
</managed-bean> 

Таким образом, вы можете использовать

#{date.time} 

, чтобы получить временную метку.


Обратите внимание, что я полностью согласен с Божо, что это не правильный способ предотвратить кеширование. Выше приведено только для вашей информации. Некоторым людям нужно каждый день учиться чему-то новому :)

Смежные вопросы