jsf - 有条件地启用或禁用 o :cache through an attribute?

标签 jsf caching omnifaces

我找不到任何属性来有条件地启用或禁用 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/

相关文章:

jsf - 搜索功能没有执行任何操作

JSF Composite 组件迭代并显示对象列表

performance - 使用链式与开放式寻址的哈希表中的缓存性能

jsf-2 - 如何在junit中使用OmniFaces

eclipse - Eclipse Kepler for Omnifaces 上的自动代码完成 o :importConstants

java - 自动完成 Primefaces 不记录到数据库

JSF 添加查询参数

css - 列宽在 p :column primefaces 中固定时出错

c++ - 确保二进制文件中的 float 在不同平台上按预期表示?

java - 如何在 Caffeine Cache Spring Boot 的 application.properties 层为每个缓存设置不同的规范