Ошибка дублирующегося идентификатора с диалогом простых лиц в шаблоне

ПФ 3.5.10, Моджара 2.1.21, Омнифас 1.5

У меня есть Facelet-шаблон с p: меню и p: включить для диалога

mytemplate.xhtml:

<h:form> ... <p:menubar> 
     <p:menuitem value="Start Dialog" oncomplete="mydialogwidget.show()"/>       
     <p:menuitem value="open another page" action="/app/mypage.xhtml?faces-redirect=true"/>
 </p:menubar>  ... </h:form>

<ui:insert name="content" />

<ui:include="/app/mydialog.xhtml" />

mydialog.xhtml:

<ui:composition> 
  <p:dialog widgetVar="mydialogwidget" ...>
    <h:form>
    <p:datatable binding="#{mybean.table}">
       <p:column id="col_first"> ... </p:column> 
         ...
       <p:column id="col_last"> ... </p:colum>
    </p:datatable>
    </h:form>
  </p:dialog>
</ui:composition>

mypage.xhtml:

 <ui:composition template="/app/mytemplate.xhtml">
    <ui:define name="content">
    <h:form> ... </h:form>
    </ui:define>
 </ui:composition>

Если я запускаю меню формы mypage.xhtml, я получаю сообщение об ошибке JSF1007 (повторяющиеся идентификаторы). Дерево компонентов будет записано в мою консоль. Упрощенный вывод дерева компонентов:

+id: mydialog
  +id: mytable
    +id: col_first  <<=============
     ....
    +id: col_last 
    +id:col_first <<========

mydialog.xhtml будет включен только один раз. Ответ на вопрос JSF с Primefaces Menu дублирует ошибку Id? не помогает мне Как я могу избежать этой ошибки? Откуда эта ошибка?

1 ответ

Решение

Пролбем был обязательным атрибутом данных. См. Также: Атрибут Binding приводит к дублированию идентификатора компонента, найденного в представлении.

Компонент SessionScoped использовался в нескольких представлениях.

Я использовал привязку таблицы EL, и тогда проблема исчезла.

Другие вопросы по тегам