ui:repeat
не повторяет компоненты в корне представления, оно повторяет вывод компонента в визуализированном выводе HTML.
Есть несколько способов добиться этого правильно. Одним из них является использование объекта-значения вместо этого и установка там потребности. Например. List<Item>
, где Item
имеет свойства String name
и boolean required
.
<ui:repeat value="#{test.items}" var="item" id="repeat">
<h:panelGrid columns="3">
<h:outputLabel id="nameLabel">name:</h:outputLabel>
<h:inputText id="name" value="#{item.name}" required="#{item.required}" validator="#{test.validateName}" />
<h:message for="name"></h:message>
</h:panelGrid>
</ui:repeat>
Есть и другие способы, но поскольку используемая версия JSF и функциональные требования неясны, остается только догадываться, какой способ наиболее применим в вашем случае.