2

我找不到任何有条件地启用或禁用的属性o:cache。有没有其他方法可以做到这一点?

像这样的东西:

<o:cache scope="application" disabled="#{someELexprsn}">
    ....
</o:cache>

我想根据某些条件禁用 o:cache。

(实际上,我在用于显示多种类型实体的页面的页面上使用此 o:cache,但我只想为某些实体的页面启用缓存。)

4

1 回答 1

2

没有属性可以让您在每个请求的基础上禁用缓存。随意打开功能请求,以便将其添加到 OmniFaces。

同时,您可以滥用该reset属性。

<o:cache scope="application" reset="#{someELexprsn}">
    ....
</o:cache>

在幕后,它仍然会缓存它,但每次 EL 表达式计算时都会重置它true。在效果上,它确实具有预期的效果,尽管它是以笨拙的方式完成的。在 OmniFaces 人员添加新属性之前,这可能就足够了。该disabled属性将代替重置执行完整的渲染传递(因此,在此特定示例中,缓存的内容仍将在应用程序范围内,但根本没有被渲染)。

于 2013-09-04T13:06:30.620 回答