gpt4 book ai didi

jsf - 根据 的值有条件地渲染

转载 作者:行者123 更新时间:2023-12-04 02:02:27 25 4
gpt4 key购买 nike

我正在使用 jsf primefaces。我想根据特定 outputext 的值显示图像。如果文本值为“Alarm *”,则将出现一个带有特定图像的 div。如果值为“Alarm **”,则会出现带有其他图像的 div,等等。我尝试了下面的代码,但它对我不起作用。

<h:outputText id="alarmCriticalityValue" value="#{msg[summary.criticality.key]}" />

<c:if test="#{alarmCriticalityValue=='Alarm *'}">
<div class="alarm1"></div>
</c:if>

我应该如何实现这个想法?

最佳答案

您需要使用 binding放置 UIComponent 的属性EL 范围内的实例。 id属性不会那样做,这与您的预期相反。

<h:outputText binding="#{alarmCriticality}" ... />

然后你需要使用 UIOutput#getValue()获得它的value属性。

<c:if test="#{alarmCriticality.value == 'Alarm *'}">

也就是说,您最好使用 rendered属性在这里,特别是如果 #{summary}表示 JSF 迭代组件的当前迭代项,如 <ui:repeat><h:dataTable> .

<h:panelGroup layout="block" styleClass="alarm1"
rendered="#{alarmCriticality.value == 'Alarm *'}" />

另见:


与具体问题无关。看到条件渲染依赖于本地化文本很奇怪。如果您更改语言环境和/或本地化文本怎么办?这是非常脆弱的。您最好检查捆绑 key 。

<h:outputText value="#{msg[summary.criticality.key]}" />
<h:panelGroup layout="block" styleClass="alarm1"
rendered="#{summary.criticality.key == 'some.alarm.key'}" />

这样您也不再需要绑定(bind)输出文本。

关于jsf - 根据 <h :outputText> 的值有条件地渲染 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com