JSF 中 ui:fragment 的替代方法
我正在搜索一种受支持的方法来呈现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}"/>
但我不喜欢这种方式,因为您必须将渲染的内容添加到每个元素中。
另一种方法是使用 BUT c:if 从 JSF 树中删除元素,而不是你一直想要做的事情,尤其是在使用 AJAX 的情况下。<c:if test="#{condtion}">
所以你们有另一个解决方案?