Как отобразить элементы ArrayList по индексу в выражении EL на странице JSF - PullRequest
5 голосов
/ 11 марта 2012

Я хочу отобразить Java-массив на странице JSF. Я создал Arraylist из базы данных. Теперь я хочу отобразить список на странице JSF, вызывая индекс элементов списка по номеру индекса. Можно ли передать параметр в метод bean-компонента непосредственно из EL-выражения на странице JSF и отобразить его?

1 Ответ

25 голосов
/ 11 марта 2012

Вы можете получить доступ к элементу списка по определенному индексу, используя обозначение скобки [].

@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 (или JBoss EL, когда вы все еще на EL 2.1) поддерживает вызов методов bean с аргументами.

#{bean.doSomething(foo, bar)}

Смотри также:


Мне, однако, интересно, не проще ли просто использовать компонент, который перебирает все элементы списка, такие как <ui:repeat> или <h:dataTable>, так что вам не нужно заранее знать размер или получить каждый отдельный элемент по индексу. Э.Г.

<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>

Смотри также:

...