html - 非 JSF 组件的条件渲染(普通 HTML 和模板文本)

标签 html jsf conditional-rendering

我正在尝试有条件地呈现 <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/

相关文章:

reactjs - 如何更改 React map 中的渲染顺序

jsf - 仅当至少呈现两个子项(标题+项目)时,如何呈现 JSF 组件?

html - :first-letter not working with strong

spring - JSF 2.0、Spring 3.1 和 Hibernate 4.0 集成

java - 在 WebSphere 上,ExternalContext 的 Request 对象上的 getQueryString 返回 null

jsf - c :set gets called multiple times instead of its return value being used 中的 EL 表达式

ReactJs - 条件渲染或隐藏组件

javascript - 如何触发清除iframe父页面的缓存?

javascript - 选择两个元素时创建效果?

javascript - Handlebars 不显示内容