显示/隐藏特定 Java 值 (JSF) 上的 HTML 片段



我正在编写一段代码,如果语句正确,它应该显示一些html。

我有一个包含值的托管豆。状态是一个枚举 - 我在网上发现它可以被视为字符串。但是,它对我不起作用。

  <c:if test="#{myBean.item.status == 'OPEN'}" >
         //display this
   </c:if> 

显示此内容的最佳方式是什么?c:if不起作用。

<c:if>在视图构建时运行,即 XHTML 文件转换为 JSF 组件树的那一刻,如果待测试变量仅在视图呈现时(JSF 组件树需要生成 HTML 的那一刻(可用,则该将不起作用。然后,您将需要一个在视图呈现时运行的 JSF 组件。

如果您打算在视图呈现期间有条件地渲染 JSF 组件片段,则应使用 <ui:fragment>

<ui:fragment rendered="#{myBean.item.status == 'OPEN'}">
     ...
</ui:fragment>

另一种选择是<h:panelGroup>

<h:panelGroup rendered="#{myBean.item.status == 'OPEN'}">
     ...
</h:panelGroup>

只要您不指定任何应该在 HTML 输出中结束的属性,例如 idstyle 等,它也不会呈现任何 HTML 输出。然后,它将生成一个 HTML <span> 元素。这在语义上至少比其他回答者错误建议的<label>要好得多。<label>旨在标记关联的 HTML 输入元素,而不是跨越某些标记。

另请参阅:

  • JSTL in JSF2 Facelets...意义?

相关内容

  • 没有找到相关文章

最新更新