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



我试图有条件地渲染<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>:如何不渲染整个块在JSF?

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

参见:

  • JSF中ui:fragment的替代方案
  • 有条件地显示JSF组件
  • 如何找出ajax更新/渲染组件的客户端ID ?找不到带有表达式"foo"的组件引用自"bar"
  • Ajax更新/渲染不能在具有渲染属性
  • 的组件上工作

相关内容

  • 没有找到相关文章

最新更新