我有一个包含一些javascript包含的jsf页面。我想通过向其网址添加时间戳来防止缓存。可以使用“plain”jsf而不添加java代码吗?
E.g:
<script type="text/javascript" src="file.js?ts=#{timestamp}"></script>
答案 0 :(得分: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的说法,这不是防止缓存的正确方法。以上仅供参考。有些人每天都需要学习新东西:)
答案 1 :(得分:3)
这不是防止缓存的正确方法。使用验证请求的URI的Filter
,如果有.js
扩展名或响应内容类型的text / javascript,则添加阻止缓存的标头。有关示例实现,请参阅this answer。