1

PF 3.5.10、Mojara 2.1.21、Omnifaces 1.5

我有带有 p:menu 和 p:include 的 Facelet-Template 用于对话框

我的模板.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>

我的页面.xhtml:

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

如果我启动 mypage.xhtml 表单菜单,我会变成 JSF1007 错误 (Duplicate ids) 组件树将被写入我的控制台。简化的组件树输出:

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

mydialog.xhtml只包含一次。使用 Primefaces Menu 重复 ID 错误的 JSF问题的答案?对我没有帮助。我怎样才能避免这个错误?这个错误来自哪里?

4

1 回答 1

3

问题是数据表上的绑定属性。另请参阅:绑定属性导致在视图中找到重复的组件 ID

SessionScoped 组件在多个视图中使用。

我使用了 EL-table 绑定,然后问题就消失了。

于 2013-08-30T08:24:01.357 回答