有条件地显示纯HTML元素

时间:2011-06-04 16:41:50

标签: html jsf-2 conditional

我想有条件地显示以下元素:

<li>
  <h:link outcome="mypage" value="My Value" />
</li>

所以我的情况应该确定是否会显示<li>标签及其所有子标签。 AFAIK,由于<f:verbatim>代码(<li>)中的UIComponent,我无法使用<h:link>

有什么想法吗?

2 个答案:

答案 0 :(得分:26)

还有另一个原因是不使用<f:verbatim>:它在JSF 2.0中已弃用

使用<ui:fragment>。它在语义上比<h:panelGroup>更正确(当没有指定客户端特定属性时,它本身确实没有呈现),并且开销也有所减少。

<ui:fragment rendered="#{bean.show}">
    ...
</ui:fragment>

(注意:由于一些错误,Netbeans似乎不支持这个属性,但这是不真实的,它肯定是支持的)

答案 1 :(得分:1)

您可以将元素包含在h:panelGroup中,并在面板组的rendered属性中使用您的条件。

<h:panelGroup rendered="...">
  <li>
    <h:link outcome="mypage" value="My Value" />
  </li>
<h:panelGroup>