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

Тестирование тегов Facelets

Кто-нибудь знает способ получить индекс элемента в теге ui: repeat facelets?

<ui:repeat id="topTenGrd" var="dream" value="#{dreamModifyBean.topDreams}">
    <h:outputText class="dream-title uppercase" value="#{dream.number}. #{dream.title}" />
</ui:repeat>
4b9b3361

Ответ 1

Укажите значение атрибута "varStatus":

<ui:repeat id="..." var="..." value="..." varStatus="myVarStatus">

Затем вы можете получить доступ к индексу цикла через EL:

#{myVarStatus.index}

Кроме того, для varStatus доступны следующие свойства:

  • начало типа Integer
  • конец типа Integer
  • индекс типа int
  • шаг типа Integer
  • даже типа boolean
  • нечетный тип boolean
  • первый тип типа boolean
  • last of type boolean

Подробнее см.

https://javaserverfaces.java.net/docs/2.2/vdldocs/facelets/ui/repeat.html

Ответ 2

Ответ Брайана хорош, но я думаю, что это может быть немного более подробным для информации.

Создаем пользовательский интерфейс: Repeat

<ui:repeat id="repeatOne" var="listofValues" varStatus="myVarStatus"> </ui:repeat>

Используя UI Repeat, мы можем получить доступ к значениям из переменной, связанной с списком listofValues.

Используя varStatus, мы можем создать другую переменную, содержащую различный тип информации. Например, используя #{myVarStatus.index} в нашем списке для создания таблицы, мы можем использовать эту информацию для нашего индекса в нашем списке.

1.

2.

3.

Конечно, если вы укажете, что ваш массив будет начинаться с 0, тогда будет ваш список, если вы не добавите 1 к каждому. # {myVarStatus.index + 1}

Они также очень полезны в 2D-массивах, которые должны использовать 2 UI:Repeat, которые вложены.

Свойство ___ Getter _________ Описание

current     getCurrent()    The item (from the collection) for the current round of iteration
index       getIndex()      The zero-based index for the current round of iteration
count       getCount()      The one-based count for the current round of iteration
first       isFirst()       Flag indicating whether the current round is the first pass through the iteration
last        isLast()        Flag indicating whether the current round is the last pass through the iteration
begin       getBegin()      The value of the begin attribute
end         getEnd()        The value of the end attribute
step        getStep()       The value of the step attribute

Дополнительная документация со ссылками:

  • Атрибуты для пользовательского интерфейса: здесь можно найти здесь.