如何在JSF页面的EL表达式中按索引显示ArrayList的元素

Pet*_*zov 5 jsf arraylist el

我想将java arraylist显示到JSF页面中.我从数据库生成了arraylist.现在我想通过索引号调用列表元素索引将列表显示到JSF页面.是否可以直接从JSF页面中的EL表达式向bean方法传递参数并显示它?

Bal*_*usC 25

您可以使用括号表示法按特定索引访问列表元素[].

@ManagedBean
@RequestScoped
public class Bean {

    private List<String> list;

    @PostConstruct
    public void init() {
        list = Arrays.asList("one", "two", "three");
    }

    public List<String> getList() {
        return list;
    }

}
Run Code Online (Sandbox Code Playgroud)
#{bean.list[0]}
<br />
#{bean.list[1]}
<br />
#{bean.list[2]}
Run Code Online (Sandbox Code Playgroud)

至于参数传递,肯定是可能的.EL 2.2(或者当你还在使用EL 2.1时使用JBoss EL)支持使用参数调用bean方法.

#{bean.doSomething(foo, bar)}
Run Code Online (Sandbox Code Playgroud)

也可以看看:


然而,我想知道是否使用迭代列表中所有元素的组件(例如<ui:repeat>or )并不容易<h:dataTable>,因此您不需要事先知道大小,也不需要通过索引获取每个单独的项目.例如

<ui:repeat value="#{bean.list}" var="item">
    #{item}<br/>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

要么

<h:dataTable value="#{bean.list}" var="item">
    <h:column>#{item}</h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)

也可以看看: