我找不到任何属性来有条件地启用或禁用 o:cache
。还有其他方法可以实现此目的吗?
类似这样的事情:
<o:cache scope="application" disabled="#{someELexprsn}">
....
</o:cache>
我想根据某些条件禁用 o:cache。
(实际上,我在用于显示多种类型实体的页面的页面上使用此 o:cache,但我只想为某些实体的页面启用缓存。)
最佳答案
没有任何属性可以让您根据每个请求禁用缓存。欢迎打开feature request以便将其添加到 OmniFaces。
与此同时,您可以滥用reset
属性。
<o:cache scope="application" reset="#{someELexprsn}">
....
</o:cache>
在幕后,它仍然会缓存它,但每次 EL 表达式计算true
时都会重置它。实际上,它完全达到了预期的效果,尽管它是以一种笨拙的方式完成的。在 OmniFaces 人员添加新属性之前,这可能就足够了。 disabled
属性将代替重置执行渲染的完整传递(因此,在这个特定示例中,缓存的内容仍将在应用程序范围内,但根本不会被渲染)。
关于jsf - 有条件地启用或禁用 o :cache through an attribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606604/