Ошибка дублирующегося идентификатора с диалогом простых лиц в шаблоне
ПФ 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, и тогда проблема исчезла.