11

我正在尝试有条件地渲染 a<tr>因此我不能使用<h:panelGroup>它,因为它将渲染到<span> or <div>

我目前的(工作)方法如下:

<h:outputFormat rendered="#{negotiator.maySend}">
    <tr> my tr stuff </tr>
</h:outputFormat>

这行得通,但我不确定这是否是滥用的方式<h:outputFormat>- 在此之前我使用过,<h:outputLabel>但这是<label>在 IE 中呈现的。

我也阅读了这个问题的答案,但如上所述,它们对我不起作用,因为<tr>如何不在 JSF 中渲染整个块?

4

1 回答 1

24

我不能使用<h:panelGroup>,因为它会渲染到<span><div>

显然你没有仔细测试它。<h:panelGroup>如果您没有指定应该在客户端结束的属性,例如 , , 等,则不会呈现layout任何id内容styleClass

因此,这在技术上应该可以完美地工作。

<h:panelGroup rendered="#{negotiator.maySend}">
    <tr> my tr stuff </tr>
</h:panelGroup>

但是,更好的主要目的是使用<ui:fragment>.

<ui:fragment rendered="#{negotiator.maySend}">
    <tr> my tr stuff </tr>
</ui:fragment>

顺便说一句,这也是可能的<f:verbatim>,但自 JSF 2.0 以来已弃用,因为它是专门为在 JSP 中使用而设计的。

也可以看看:

于 2013-04-11T11:45:54.930 回答