Это невозможно с тегом времени рендеринга, таким как <ui:repeat>
. Однако <ui:repeat>
сам по себе уже обеспечит уникальность сгенерированного идентификатора клиента, добавив к нему индекс строки. Поэтому просто удалите деталь EL из атрибута ID компонента.
<ui:repeat value="#{bean.columns}" var="column">
<h:panelGroup layout="block" id="column">
С помощью тега времени построения представления, такого как <c:forEach>
(который в основном будет генерировать несколько <h:panelGroup>
компонентов вместо только одного, который отображается несколько раз), можно указать такой динамический идентификатор.
<c:forEach items="#{bean.columns}" var="column">
<h:panelGroup layout="block" id="column_#{column.id}">
(вы должны только хорошо знать о том, как JSTL работает в Facelets)
Альтернативой является использование статического элемента <div>
вместо компонента JSF <h:panelGroup layout="block">
.
<ui:repeat value="#{bean.columns}" var="column">
<div id="column_#{column.id}">
Смотри также: