我正在尝试有条件地呈现 <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>
,它们对我不起作用。 : How to not render whole block in JSF?
最佳答案
I cannot use
<h:panelGroup>
as it will render to<span>
or<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 中使用而设计。
另见:
关于html - 非 JSF 组件的条件渲染(普通 HTML 和模板文本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15946985/