h: dataTable, вложенный в пользовательский интерфейс: повтор, обновление значений inputText не работает - PullRequest
0 голосов
/ 05 мая 2011

Я отображаю ArrayList (menu.specifications), содержащий пользовательские объекты (POJO), в нескольких h: dataTables на одной странице.Каждый h: dataTable содержит различный диапазон элементов ArrayList.Один столбец содержит тег h: inputText.

После ввода и отправки пользователем обновляются только теги inputText из последней таблицы данных.Остальные остаются без изменений.

Вот соответствующий код:

<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 для отображения в dataTable
  • menu.points[loop.index].y = количество элементов для отображения в dataTable
  • menu.groupTitles = заголовки различныхdataTables

1 Ответ

2 голосов
/ 12 августа 2011

Кажется, что это проблема всех таблиц dataTable, имеющих одинаковый идентификатор при генерации тегом ui:repeat. Смотрите также этот выпуск в Моджарра Джира. Однако у меня пока нет решения. Похоже, что он существует с JSF 1.2 дня, потому что проблема впервые возникла при переходе с JBoss 4.2.2 на 4.3.3, которая также включала обновление версии JSF 1.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...