Подтвердить что ты не робот

JSF - <ui: repeat/"> над java.util.Set?

Поддерживает ли тег <ui:repeat /> итерацию по java.util.Set? Я попытался выполнить итерацию над объектами сущности домена JPA, содержащимися в наборе, но получить ошибки. Есть что-то, что мне не хватает? Должен ли присутствовать дополнительный флаг или что-то еще?

4b9b3361

Ответ 1

Нет, ui:repeat не поддерживает Set, а не h:dataTable.

Вы должны вернуть список из набора и использовать его вместо этого.

public List<T> getListFromSet(Set<T> set) {
  return new ArrayList<T>(set);
}

Вам следует избегать использования c:forEach; вот статья о том, почему.

Ответ 2

Самый простой способ завершить сделку на странице без изменения класса - преобразовать set в array, как это.

<ui:repeat value="#{myBean.mySet.toArray()}" var="_myvar">

Ответ 3

Вместо этого используйте c:forEach. Похоже, что ui:repeat не поддерживает множества (т.е. Требует своего рода свойство упорядочения).

В противном случае вы можете создать свой собственный тег, как описано в: http://techblog.bozho.net/?p=28