JSF ELで配列を作成したい。どうやってやるの?それは可能ですか?
私がしようとしていることを説明するには:
<rich:pickList addAllText="" addText="" removeAllText="" removeText="">
<f:selectItems value="#{'Test', 'TestTest', 'TestTestTest'}" />
</rich:pickList>
EL 3.0以降を使用している場合は、ELで直接コレクションを作成できます。
<f:selectItems value="#{['Test','TestTest','TestTestTest']}" />
EL 3.0をまだ使用していない場合は、この特定のケースをfn:split()
トリックで解決できます。
<html ... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
...
<f:selectItems value="#{fn:split('Test,TestTest,TestTestTest', ',')}" />
List<T>
いずれにせよ、これにはinのサポートのために最低でもJSF2.0が必要<f:selectItems>
です。
EL 3.0 では可能です。
[1, 2, 3].toArray()
これにより、最初に List が作成され、次にそれが配列に変換されます。
少なくとも最近の JSF バージョンでは、 の配列さえ必要ありませf:selectItems
ん。任意の Iterable で十分です。そう:
<f:selectItems value="#{['Test', 'TestTest', 'TestTestTest']}" />
EL でのコレクション構築の詳細については、EL 3.0 仕様 - 最終リリース、2.2 コレクション オブジェクトの構築を参照してください。