2014-03-24 4 views
0

У меня есть основная страница HTML, которая включает в себя detail.xhtml и duo.xhtml.JSF включает и дублирует HTML-идентификаторы

Теперь duo.xhtml также включает в себя detail.xhtml, что приводит к дублированию идентификаторов, которые, конечно, это не работает. Что я могу сделать для решения этой проблемы? Я не хочу управлять избыточным кодом.

Главная:

<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> 

Duo:

<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"/> 
+0

и как бы мой '<ч: outputLabel>' s, например, относятся к '' ? Я думаю, что у ваших вторых предложений не хватает деталей. Я не могу понять, что вы посоветуете мне делать точно – dasLort

+0

Я сильно не согласен с @DarkFalcon, так как он раньше не работал с JSF. Во всяком случае, похоже, что вы не добавляете идентификатор из контейнера, например. '', ''; или вы эффективно используете дубликаты идентификаторов на обеих страницах, поэтому просто измените их. Было бы лучше, если бы вы предоставили образец кода. –

+1

@LuiggiMendoza: Правильно, на самом деле, я не видел тег. Я видел xhtml и предполагаемые HTML-идентификаторы. Мои извинения. –

ответ

3

Благодаря BalusC я смог решить проблему. Просто используйте

<f:subview id="fromMain"> 
    <ui:include src="/includes/regelDetail.xhtml" /> 
</f:subview> 

и, если речь идет от главного, имя элемента является fromMain: аккордеон

Смежные вопросы