【发布时间】:2012-01-11 20:55:10
【问题描述】:
<ui:repeat value="#{bean.allResults}" var="result">
<ui:fragment rendered="#{result.condition1}">
<ui:include src="/item1.xhtml">
</ui:fragment>
<ui:fragment rendered="#{result.condition2}">
<ui:include src="/item2.xhtml">
</ui:fragment>
<ui:fragment rendered="#{result.condition3}">
<ui:include src="/item3.xhtml">
</ui:fragment>
<ui:fragment rendered="#{result.condition4}">
<ui:include src="/item4.xhtml">
</ui:fragment>
</ui:repeat>
我有几个关于使用 JSF/JSTL/Facelets 时的最佳实践的问题
我有一个 JSF 页面,看起来像上面的代码。假设此循环返回 10 个结果,并且对于每个结果,只有 1 个条件评估为真。
因此,一旦加载,用户将在 html 页面上看到 10 个结果。
尽管只有 10 个项目会显示在 html 中,组件树将包含 40 个项目,它会包含那些渲染为假的项目。 上述行为是否准确?
如果 1 为真,并且我们可以在组件树中包含许多隐藏的组件,这是否是性能问题,假设它是 400 个项目而不是 40 个?
在 Faceletes 或 JSF 中是否有条件标记处理程序,其行为类似于 c:if 并且不会在树中包含组件?还是我应该使用 c:if 作为最后的手段?我试图避免使用 JSTL。
谢谢。
【问题讨论】:
标签: jsf jstl facelets rendered-attribute