gpt4 book ai didi

jsf-2 - 使用 Omnifaces 使数据过期

转载 作者:行者123 更新时间:2023-12-05 01:08:59 24 4
gpt4 key购买 nike

我有一个很大的应用程序范围的内容缓冲区,我想保留在内存中。使用 Omnifaces 让我们很容易地做到这一点。

但是,如果我需要使缓存过期,似乎没有方法可以这样做。如果需要,我可以设置时间属性,但这似乎并不是这个难题的理想答案。

关于强制更新基础数据的任何建议?

谢谢,

特马尔

最佳答案

However, if I need to expire the cache, there appears to be no method to do so.



在标签/组件上确实没有方法,但有一种编程方式。如果您为缓存条目分配显式键,则效果最佳:
<o:cache key="myCache">

cached content here

</o:cache>

然后在支持 bean 中,您可以删除该条目的内容,如下所示:
public void reset() {
CacheFactory.getCache(Faces.getContext(), "session").remove("myCache");
}

请注意,默认范围是“ session ”,因此在此处使用。如果您为标记使用了另一个作用域(如“应用程序”),您将在您的支持 bean 代码中指定它。

您可以在知道缓存需要过期时调用此方法(例如,如果操作方法更新了一些后备数据),或者您可以创建显式重置按钮:
<h:form>
<h:commandButton action="#{someBean.reset}" value="Reset cache" />
</h:form>

对于 OmniFaces 1.5,我们计划为 o:cache 添加一个属性。标记使这更简单一些,我们将在展示中添加一个示例,展示如何手动使条目过期。

关于jsf-2 - 使用 Omnifaces <o :cache> 使数据过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16282151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com