2013-05-23 2 views
1

Я использую компонент masterDetail для отображения некоторых вещей. Сначала у меня был весь компонент masterDetail-Component, вложенный в -Tag. После того, как я заметил, что мне придется использовать формы в компоненте masterDetail, я удалил теги формы, чтобы избежать вложенных форм, которые не разрешены.pe: masterDetail - MenuItem должен быть внутри элемента формы (?)

<ui:define name="center"> 
     <p:growl id="infoMessage" sticky="false" /> 
     <p:layoutUnit position="center" style="border-width: 0px"> 

      <p:panel id="panel"> 

       <pe:masterDetail showBreadcrumb="true" selectLevelListener="#{logic.selectLevel}"> 

        <f:facet name="header"> 
         <p:messages showDetail="false" showSummary="true" /> 
        </f:facet> 

        <pe:masterDetailLevel level="1" 
         levelLabel="#{ivy.cms.co('/Labels/Mitarbeiterauswahl')}"> 
         <h:panelGrid columns="3" cellpadding="5"> 

          <p:outputLabel for="name" value="#{ivy.cms.co('/Labels/Mitarbeiter')}" /> 
          <p:inputText id="name" value="#{data.nameSuche}" /> 
          <p:commandButton value="#{ivy.cms.co('/Labels/Buttons/Suchen')}" 
           actionListener="#{logic.RD_Suchen}" update="mitarbeitersuche" /> 

         </h:panelGrid> 

         <p:dataTable value="#{data.mitarbeiter.rsMitarbeiter}" var="mitarbeiter" 
          id="mitarbeitersuche"> 
          <p:column headerText="#{ivy.cms.co('/Labels/Nachname')}"> 
           <h:outputText value="#{mitarbeiter['nachnamemita']}" /> 
          </p:column> 

          <p:column headerText="#{ivy.cms.co('/Labels/Vorname')}"> 
           <h:outputText value="#{mitarbeiter['vornamemita']}" /> 
          </p:column> 

          <p:column headerText="#{ivy.cms.co('/Labels/Kostenstellennr')}"> 
           <h:outputText value="#{mitarbeiter['nrkost']}" /> 
          </p:column> 

          <p:column headerText="#{ivy.cms.co('/Labels/Kostenstelle')}"> 
           <h:outputText value="#{mitarbeiter['beschreibungkost']}" /> 
          </p:column> 

          <p:column headerText="#{ivy.cms.co('/Labels/email')}"> 
           <h:outputText value="#{mitarbeiter['emailmita']}" /> 
          </p:column> 

         </p:dataTable> 

        </pe:masterDetailLevel> 


       </pe:masterDetail> 


      </p:panel> 

     </p:layoutUnit> 
    </ui:define> 

Теперь возникает исключение:

MenuItem must be inside a form element 

viewId =/случаи/13ED0EF71F61E4D5/MitarbeiterdatenJSF.xhtml место = C: \ Users \ nweis.FREICON \ Desktop \ xivy5 \ WebApps \ плюща \ экземпляры \ 13ED0EF71F61E4D5 \ MitarbeiterdatenJSF.xhtml phaseId = RENDER_RESPONSE (6)

Вызванный: javax.faces.FacesException - MenuItem должен быть внутри форма элемента на org.primefaces.component.menu.BaseMenuRenderer.encodeMenuItem (BaseMenuRenderer.java:92)

Это действительно смущает меня, потому что в этом примере кода, предоставленной PrimefacesExtension-Team нет form- элемент окружающий pe: masterDetail see here. Может, кто-то может дать мне руку.

ответ

2

У нас есть элемент формы, окружающий pe: masterDetail, конечно. Это просто не показано в коде, потому что форма находится в главном шаблоне. Конечно, MenuItem должен быть в форме и, следовательно, весь MasterDetail тоже. MenuItem - это компонент команды, и каждый компонент команды должен быть в форме.

+0

Спасибо за ваш ответ Олег. Это меня действительно смутило. Спасибо за разъяснения. –

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