【发布时间】:2017-01-26 15:38:19
【问题描述】:
我正在处理许多 JSF 页面,其中包含有关站点主要主题的摘要。在大页面上,摘要在不同位置重复。它是通过定义元素,然后插入它来完成的:
<ui:define name="sommaire">
<ui:include src="/sommaire/sommaire.xhtml">
<ui:param name="contrat" value="#{form.contrat}" />
</ui:include>
</ui:define>
后来在几个不同的地方:
<ui:insert name="sommaireContrat" />
问题是:summary有自己的backing bean和逻辑,每次被包含,逻辑都会重新执行并渲染一个新的html块。我想知道是否有一个标签使用生成的组件的副本而不涉及第二次 bean。 我愿意接受任何不会修改所包含内容的建议。
【问题讨论】:
-
你为什么要这个?它现在的工作方式有什么问题?
-
@Kukeltje 对于每个插入,摘要的支持 bean 重新计算显示的信息(如平均花费等)。处理时间不多,但很明显也没有必要。
-
那为什么不“缓存”这个计算值呢?或者试试omnifaces cache
-
omnifaces 缓存正是我想要的,但我不允许添加更多依赖项。我会和团队讨论这件事。谢谢你的提示。
-
如果你使用 JSF 2.2,任何反对添加 OmniFaces 的人都应该被解雇... ;-)