ELにはリストリテラルはありませんが、faces-config.xmlでリストを宣言することにより、Beanにリストを含める必要なしにリストを宣言できます。
<managed-bean>
<managed-bean-name>someList</managed-bean-name>
<managed-bean-class>java.util.ArrayList</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<list-entries>
<value>One</value>
<value>Two</value>
<value>Three</value>
</list-entries>
</managed-bean>
ユーティリティタイプを使用してリストを作成することもできます。
import java.util.*; import javax.faces.bean.*;
@ManagedBean @NoneScoped
public class Lister<T> extends AbstractList<T> {
private List<T> list = new ArrayList<T>();
public Lister plus(T t) {
list.add(t);
return this;
}
@Override public T get(int index) {
return list.get(index);
}
@Override public int size() {
return list.size();
}
@Override public String toString() {
return list.toString();
}
}
これは、次のような式で使用できます#{lister.plus('one').plus('two').plus('three')}