インスタンスを EL スコープbinding
に入れるには、属性を使用する必要があります。UIComponent
予想に反して、id
属性はそれを行いません。
<h:outputText binding="#{alarmCriticality}" ... />
そして、UIOutput#getValue()
そのvalue
属性を取得するために使用する必要があります。
<c:if test="#{alarmCriticality.value == 'Alarm *'}">
rendered
とはいえ、ここでは attributeを使用することをお勧めします。特に、または#{summary}
のような JSF 反復コンポーネントの現在反復されている項目を表す場合はそうです。<ui:repeat>
<h:dataTable>
<h:panelGroup layout="block" styleClass="alarm1"
rendered="#{alarmCriticality.value == 'Alarm *'}" />
以下も参照してください。
具体的な問題とは無関係。条件付きレンダリングがローカライズされたテキストに依存するのは奇妙です。ロケールやローカライズされたテキストを変更するとどうなりますか? これは非常にもろいです。代わりにバンドルキーを確認することをお勧めします。
<h:outputText value="#{msg[summary.criticality.key]}" />
<h:panelGroup layout="block" styleClass="alarm1"
rendered="#{summary.criticality.key == 'some.alarm.key'}" />
このようにして、出力テキストをバインドする必要もなくなります。