2010-08-18 102 views
0

我有一个包含一些javascript包含的jsf页面。而且我想通过为其网址添加时间戳来防止缓存。它可以做到“纯”jsf而无需添加Java代码?带时间戳的JSF

E.g:

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

回答

3

这是不太防止缓存的正确方法。使用Filter验证请求的URI,如果有.js扩展名或响应content-type text/javascript,则添加阻止缓存的标头。有关示例实现,请参阅this answer

+1

有趣。第一次看到fmt:timestamp。它在哪里记录?至少不[这里](https://javaserverfaces.dev.java.net/nonav/docs/2.0/pdldocs/facelets/index.html)。 – BalusC 2010-08-18 11:33:59

+0

@BalusC嗯,它似乎是caucho特定的jstl。谢谢你的提示。 – Bozho 2010-08-18 11:48:40

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} 

得到时间戳。


请注意,我完全同意Bozho,这不是防止缓存的正确方法。以上内容仅供参考。有些人需要每天学习新东西:)