我想将java arraylist显示到JSF页面中。我从数据库生成了arraylist。现在我想通过索引号调用列表元素索引将列表显示到JSF页面。是否可以直接从JSF页面中的EL表达式向bean方法传递参数并显示它?
答案 0 :(得分: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;
}
}
#{bean.list[0]}
<br />
#{bean.list[1]}
<br />
#{bean.list[2]}
关于参数传递,肯定是可能的。 EL 2.2(或当你还在使用EL 2.1时使用JBoss EL)支持使用参数调用bean方法。
#{bean.doSomething(foo, bar)}
但我想知道是否使用迭代列表中所有元素的组件(如<ui:repeat>
或<h:dataTable>
)并不容易,这样您就不需要知道事先确定大小,也不按索引获取每个项目。 E.g。
<ui:repeat value="#{bean.list}" var="item">
#{item}<br/>
</ui:repeat>
或
<h:dataTable value="#{bean.list}" var="item">
<h:column>#{item}</h:column>
</h:dataTable>