如何在JSF EL中创建数组?

San*_*dro 15 jsf jsp el

我想在JSF EL中创建一个数组.我怎样才能做到这一点?它甚至可能吗?

为了说明我在尝试什么:

<rich:pickList addAllText="" addText="" removeAllText="" removeText="">
    <f:selectItems value="#{'Test', 'TestTest', 'TestTestTest'}" />
</rich:pickList>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 20

如果您使用的是EL 3.0或更高版本,则可以直接在EL中构建集合.

<f:selectItems value="#{['Test','TestTest','TestTestTest']}" />
Run Code Online (Sandbox Code Playgroud)

如果你还没有使用EL 3.0,你可以通过一个技巧解决这个特殊情况fn:split().

<html ... xmlns:fn="http://java.sun.com/jsp/jstl/functions">
...
<f:selectItems value="#{fn:split('Test,TestTest,TestTestTest', ',')}" />
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,这需要支持的最低JSF 2.0的List<T><f:selectItems>.

  • 或者,如果使用JSF 2,将Omnifaces添加到项目中并使用`of:createArray` :) (3认同)