非JSF组件的条件呈现(普通的HTML和模板文本)

时间:2013-04-11 10:58:04

标签: html jsf conditional-rendering

我正在尝试有条件地呈现<tr>,因此我无法使用<h:panelGroup>,因为它会呈现给<span> or <div>

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

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

这样做有效,但我不确定这是否是滥用<h:outputFormat>的方法 - 在此之前我使用了<h:outputLabel>,但这已在IE中呈现给<label>

我也已经阅读了这个问题的答案,但如上所述,由于<tr>How to not render whole block in JSF?

,它们对我不起作用

1 个答案:

答案 0 :(得分:24)

  

我无法使用<h:panelGroup>,因为它会呈现给<span><div>

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

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

<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中使用而设计的。

另见: