JSF 2 dataTable индекс строки без dataModel

Я использовал ui: repeat для генерации таблиц. С помощью ui: повторите легко, чтобы строки были пронумерованы с помощью varStatus. В зависимости от идентификатора строки из varStatus при вызове backing bean используется для навигации по списку, например, перемещение элемента вверх или вниз в списке.

Теперь я хотел бы создать составной компонент, который создает настраиваемую таблицу со всеми функциями, необходимыми для маркировки строк, перемещения их вверх/вниз и т.д. Для этого повтор ui: repeat не будет работать, поскольку я не могу см. способ обработки различного количества столбцов; Мне нужно указать заголовки в одном месте, а тело - в другом (и я не достиг точки знания, где я могу создать пользовательский компонент). Поэтому вместо этого я стал использовать datatable, поскольку это означает указание заголовков как грани в том же месте, что и содержимое тела.

Это работало хорошо, пока я не заметил, что по какой-то причине больше не было varStatus. Я много работал над обработкой презентации списка без необходимости в datamodel, и я не хочу ее использовать. Есть ли способ получить текущий номер строки, как он отображается в таблице, без использования datamodel?

Также я использую viewScope, и если я правильно понял это означает, что я не могу привязать dataTable к bean.

Ответы

Ответ 1

Просто привяжите таблицу к самому представлению, а не к bean.

<h:dataTable binding="#{table}" ...>

Затем вы можете использовать #{table.rowIndex} там, где это необходимо. Например.

<h:column>#{table.rowIndex + 1}</h:column>