Есть ли способ использовать JSF2.0 в связи с переменными списками компонентов? Например, скажем, у меня есть список людей, которых я хотел бы отредактировать. Они представлены на странице в виде списка компонентов PersonEditor, позволяющих изменять данные о человеке. Каждый редактор связан с одним элементом Person. Чтобы это сработало, мне нужно выполнить следующие шаги:
При первоначальном запросе:
- Получить список людей
- Для каждого человека создайте PersonEditor и свяжите его с объектом Person.
- Заполните данные редактора.
По действию пользователя:
- Когда пользователь изменяет значения и нажимает кнопку «Сохранить», данные обрабатываются компонентом поддержки.
Я могу либо заполнить редактор данными из списка людей, либо привязать его к вспомогательному компоненту, но не одновременно, поэтому я застрял.
Я пробовал
people.xhtml
<ui:render value="#{bean.people}" var="person">
<example:personEditor person="#{person}"/>
</ui:render>
где personEditor.xhtml:
а) правильная ассоциация с объектом person, но без связи с компонентом поддержки
<h:form>
<h:outputText value="#{cc.attr.person.name}"/>
<h:commandButton name="Save" actionListener="editorBean.save">
<f:ajax execute="@form" render="@form"/>
</h:commandButton>
</h:form>
б) нет связи с объектом person, но есть связь с bean-компонентом поддержки - нет способа передать этого человека в bean-компонент поддержки
<h:form>
<h:outputText value="#{editorBean.name}"/>
<h:commandButton name="Save" actionListener="editorBean.save">
<f:ajax execute="@form" render="@form"/>
</h:commandButton>
</h:form>
Если бы у меня был каждый редактор на отдельной странице, я мог бы передать идентификатор человека в качестве параметра URL-адреса (используя либо f:param, либо f:attribute) и соответствующим образом инициализировать его. Есть ли решение этой проблемы?