1

我正在使用 JSF,我必须加载一个名为 Extra 的包。

<f:loadBundle basename="com.ni.lib.extra.delivery.ExtraBundle" var="extra" />

在这个额外的变量中,有一个名为 downtime_notice 的值。现在,如果该值不为空,我必须显示一个 css 段,其中包含 downtime_notice 值中的文本。像这样的东西(当然这不起作用):

if(extra.donwtime_notice!=''){
            <div class="pnx-msg pnx-msg-warning clearfix">
                <i class="pnx-msg-icon pnx-icon-msg-warning"/>
                <span class="pnx-msg-content"><h:outputText value="#{extra.downtime_notice}" escape="false"/></span>
            </div>
            </br>
}

我可以使用javascript,以防万一。有任何想法吗?谢谢!

4

1 回答 1

2

您可以使用<ui:fragment><h:panelGroup>有条件地呈现内容。您可以使用emptyEL 中的关键字来检查变量是否不为空或不为空。所以,所有这一切都应该做:

<ui:fragment rendered="#{not empty extra.donwtime_notice}">
    <div class="pnx-msg pnx-msg-warning clearfix">
        <i class="pnx-msg-icon pnx-icon-msg-warning"/>
        <span class="pnx-msg-content"><h:outputText value="#{extra.downtime_notice}" escape="false"/></span>
    </div>
</ui:fragment>

或者,使用<h:panelGroup layout="block">which 已经呈现<div>

<h:panelGroup layout="block" styleClass="pnx-msg pnx-msg-warning clearfix" rendered="#{not empty extra.donwtime_notice}">
    <i class="pnx-msg-icon pnx-icon-msg-warning"/>
    <span class="pnx-msg-content"><h:outputText value="#{extra.downtime_notice}" escape="false"/></span>
</h:panelGroup>

请注意,有些人可能会选择使用<f:verbatim>该作业,但自 JSF2 以来已弃用此标记。

也可以看看:


与具体问题无关,该</br>标签是无效的 HTML,所以我在示例中省略了它。

于 2013-01-17T18:03:46.983 回答