我无法找到有条件启用或禁用o:cache
的任何属性。有没有其他方法可以实现这一目标?
这样的事情:
<o:cache scope="application" disabled="#{someELexprsn}">
....
</o:cache>
我想基于某些条件禁用o:cache。
(实际上我在用于显示多种类型实体的页面的页面上使用此o:cache,但我想仅为某些实体的页面启用缓存。)
答案 0 :(得分:2)
没有任何属性可以让您根据每个请求禁用缓存。随意打开feature request以便将其添加到OmniFaces。
同时,您可以滥用reset
属性。
<o:cache scope="application" reset="#{someELexprsn}">
....
</o:cache>
在封面下,它仍会缓存它,但每次EL表达式评估true
时都会重置它。实际上,它具有与预期相同的预期效果,尽管它是以笨拙的方式完成的。在OmniFaces人员添加新属性之前,这可能就足够了。 disabled
属性将代替重置执行渲染的完全传递(因此,在此特定示例中,缓存的内容仍将在应用程序范围内,但根本不会被渲染)。