我试图有条件地渲染< tr>因此我无法使用< h:panelGroup>因为它将呈现为< span>或< 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>
显然你没有仔细测试.如果您没有指定最终在客户端的属性(如layout,id,styleClass等),则<h:panelGroup>
将不会呈现任何内容.
因此,这在技术上应该是完美的.
<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设计以来,这是不推荐的.
也可以看看:
> Alternative to ui:fragment in JSF
> Conditionally displaying JSF components
> How to find out client ID of component for ajax update/render? Cannot find component with expression “foo” referenced from “bar”
> Ajax update/render does not work on a component which has rendered attribute