#jsf-2
#jsf-2
Вопрос:
Я отображаю ArrayList (menu.specifications), содержащий пользовательские объекты (POJO), в нескольких таблицах данных h: на одной странице. Каждый h: DataTable содержит различный диапазон элементов ArrayList. Один столбец содержит тег h: inputText.
После пользовательского ввода и отправки обновляются только теги inputText последнего DataTable. Остальные остаются неизменными.
Вот соответствующий код:
<h:form>
<ui:repeat value="#{menu.groupTitles}" var="element" varStatus="loop">
<h:dataTable rendered="#{menu.points[loop.index].y>0}" value="#{menu.specifications}"
first="#{menu.points[loop.index].x}" rows="#{menu.points[loop.index].y}" var="rowVar" border="1">
<h:inputText value="#{rowVar.pvalue}" id="pvalue"/>
Я тоже пробовал это:
<h:inputText value="#{menu.specifications[rowVar.index].pvalue}" id="pvalue"/>
Объяснение ссылок:
menu.points[loop.index].x
= первый элемент ArrayList, отображаемый в DataTablemenu.points[loop.index].y
= количество элементов, которые нужно отобразить в таблице данныхmenu.groupTitles
= заголовки разных таблиц данных
Ответ №1:
Похоже, это проблема из-за того, что все таблицы данных имеют одинаковый идентификатор при создании ui:repeat
тега. Смотрите также эту проблему в Mojarra JIRA. Однако у меня пока нет решения. Похоже, что это существует со времен JSF 1.2, потому что проблема впервые возникла при переходе с JBoss 4.2.2 на 4.3.3, который также включал обновление версии JSF 1.2.