【发布时间】:2011-04-12 10:11:35
【问题描述】:
我正在寻找一种支持的方式来在 JSF 中渲染一段代码,我通常使用这种方法:
<ui:fragment rendered="#{condition}">
<h:outputText value="text 1"/>
<h:outputText value="text 2"/>
<h:outputText value="text 3"/>
</ui:fragment>
由于 ui:fragment 不支持大多数 IDE 的渲染(如 netbeans 将其标记为错误但它可以工作,因为在 JSF 中参数是继承的。
解决这个问题的一种方法是使用另一种结构(例如,如果您使用 SEAM),您可以使用
<s:div rendered="#{condition}">
....
</s:div>
另一种方法是在所有内部内容中设置渲染,如下所示:
<h:outputText value="text 1" rendered="#{condition}"/>
<h:outputText value="text 2" rendered="#{condition}"/>
<h:outputText value="text 3" rendered="#{condition}"/>
但我不喜欢这种方式,因为您必须将渲染添加到每个元素。
另一种方法是使用<c:if test="#{condtion}"> BUT c:if 从 JSF 树中删除元素,这不是您一直想做的事情,尤其是在使用 AJAX 时。
那么你们还有其他解决方案吗?
【问题讨论】: