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

ols*_*lsn 11 html jsf conditional-rendering

我试图有条件地渲染一个<tr>因此我不能使用<h:panelGroup>,因为它将渲染<span> or <div>

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

<h:outputFormat rendered="#{negotiator.maySend}">
    <tr> my tr stuff </tr>
</h:outputFormat>
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我不确定这是否是滥用的方式<h:outputFormat>- 在我使用之前,<h:outputLabel>但这是<label>在IE 中呈现的.

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

Bal*_*usC 24

我无法使用<h:panelGroup>,因为它将渲染<span><div>

显然你没有仔细测试过.该<h:panelGroup>不会呈现任何东西,如果你不指定应在客户端的最终属性,如layout,id,styleClass,等.

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

<h:panelGroup rendered="#{negotiator.maySend}">
    <tr> my tr stuff </tr>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

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

<ui:fragment rendered="#{negotiator.maySend}">
    <tr> my tr stuff </tr>
</ui:fragment>
Run Code Online (Sandbox Code Playgroud)

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

也可以看看: