次のようなエントリを含むリソースバンドルがあります。
entry1=value1
entry2=value2
entry3=value3
私のJSFページでは、これらのキーを動的に使用しようとしています。エントリのIDは、管理対象Beanから取得されます。私はそれがこのようなものであるべきだと思います:
<h:outputText value="#{msg['entry' managedBean.entryIndex]}"/>
どうすればこれを達成できますか?
次のようなエントリを含むリソースバンドルがあります。
entry1=value1
entry2=value2
entry3=value3
私のJSFページでは、これらのキーを動的に使用しようとしています。エントリのIDは、管理対象Beanから取得されます。私はそれがこのようなものであるべきだと思います:
<h:outputText value="#{msg['entry' managedBean.entryIndex]}"/>
どうすればこれを達成できますか?
サーブレット3.1/EL 3.0(Tomcat 8、WildFly 8、GlassFish 4など)を既に使用している場合は、新しいEL3.0+=
オペレーターを使用してください。
<h:outputText value="#{msg['entry' += managedBean.entryIndex]}" />
サーブレット3.0/EL 2.2(Tomcat 7、JBoss AS 6/7、GlassFish 3など)のみを使用している場合は、次のようなメソッドを直接呼び出す新しいEL2.2機能を利用してString#concat()
ください。
<h:outputText value="#{msg['entry'.concat(managedBean.entryIndex)]}" />
サーブレット3.0/EL 2.2をまだ使用していない場合は、次を使用<c:set>
して、目的のEL式をインライン化した別の変数を作成します。
<c:set var="key" value="entry#{managedBean.entryIndex}" />
<h:outputText value="#{msg[key]}" />
これで問題が解決するはずです。
<h:outputText value="#{msg['entry'.concat(managedBean.entryIndex)]}"/>
これが私のために働いたものです:[]の外のconcat
<h:outputText value="#{msg['entry'].concat(managedBean.entryIndex)}" />
ファセット関数を作成する必要があると思いますconcat(str1, str2)
。