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