21

次のようなエントリを含むリソースバンドルがあります。

entry1=value1
entry2=value2
entry3=value3

私のJSFページでは、これらのキーを動的に使用しようとしています。エントリのIDは、管理対象Beanから取得されます。私はそれがこのようなものであるべきだと思います:

<h:outputText value="#{msg['entry' managedBean.entryIndex]}"/>

どうすればこれを達成できますか?

4

4 に答える 4

47

サーブレット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]}" />
于 2011-01-31T15:03:19.930 に答える
8

これで問題が解決するはずです。

<h:outputText value="#{msg['entry'.concat(managedBean.entryIndex)]}"/>
于 2011-08-16T15:11:12.857 に答える
2

これが私のために働いたものです:[]の外のconcat

<h:outputText value="#{msg['entry'].concat(managedBean.entryIndex)}" />
于 2017-09-15T09:06:51.723 に答える
0

ファセット関数を作成する必要があると思いますconcat(str1, str2)

于 2011-01-31T14:33:29.707 に答える