我有一个 HTML 主页面,其中包括 detail.xhtml 和 duo.xhtml。
现在duo.xhtml还包括detail.xhtml,这会导致重复的ID,这当然不起作用。我可以做什么来解决这个问题?我不想管理冗余代码。
主要:
<ui:composition ...>
<ui:define name="center">
<ui:insert name="insertDuo">
<ui:include src="/includes/duo.xhtml" />
</ui:insert>
...
<p:dialog header="x" widgetVar="detDialog" id="dlg" modal="true" appendTo="@(body)">
<ui:insert name="insertDetail">
<ui:include src="/includes/detail.xhtml" />
</ui:insert>
二人组:
<ui:composition>
<p:dialog header="y" widgetVar="newDuoDialog" id="newDuoDlg" modal="true" >
<p:layout id="layout">
<p:layoutUnit position="west">
<ui:insert name="insertDetailStmt">
<h:form id="stmtDetailForm">
<ui:include src="/includes/detail.xhtml" />
</h:form>
</ui:insert>
</p:layoutUnit>
详细信息:
<p:accordionPanel id="accordion">
组件引用:
<p:commandButton value="z" update=":accordion:duoDlgForm2:pickList"/>
最佳答案
感谢BalusC,我能够解决这个问题。只需使用
<f:subview id="fromMain">
<ui:include src="/includes/regelDetail.xhtml" />
</f:subview>
当从 main 引用时,元素的名称是 fromMain:accordion
关于JSF 包含和重复的 HTML ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22613431/