MenuItem должен быть внутри элемента формы, НО форма уже существует - PullRequest
0 голосов
/ 08 января 2019

Я работаю над простыми лицами и не могу понять эту ошибку.

Мой весь код xhtml Мой код xhtml:

<ui:composition template="/layout/template.xhtml"
            xmlns="http://www.w3.org/1999/xhtml"
            xmlns:h="http://xmlns.jcp.org/jsf/html"
            xmlns:f="http://xmlns.jcp.org/jsf/core"
            xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
            xmlns:p="http://primefaces.org/ui"
            >
<ui:define name="content">
    <h:form id="formTab"> 
        <p:commandButton value="Ajouter" oncomplete="PF('addNewDialog').show()" />
        <p:dataTable var="tasktype" value="#{taskTypeBean.allTaskTypes}" id="taskType" selection="#{taskTypeBean.selectedTaskType}" selectionMode="single" rowKey="#{tasktype.reference}">
            <p:column headerText="Reference">
                <h:outputText value="#{tasktype.reference}" />
            </p:column>
            <p:column headerText="Description">
                <h:outputText value="#{tasktype.description}" />
            </p:column>
            <p:column headerText="Prix Hors Taxe">
                <h:outputText value="#{tasktype.htPrice}" />
            </p:column>
        </p:dataTable>

        <p:contextMenu for="taskType">
            <p:menuitem value="Modifier" action="#{taskTypeBean.updateDialog()}"  update=":updateForm:udpatePanel" />
            <p:menuitem value="Supprimer" action="#{taskTypeBean.deleteTaslType()}" update="taskType" />
        </p:contextMenu>
    </h:form>

    <p:dialog widgetVar="updateDialog" modal="true" appendTo="@(body)">
        <h:form id="updateForm">
            <p:growl id="growlModif" showDetail="true" sticky="true" /> 
            <p:panelGrid  columns="2" id="udpatePanel">
                <p:outputLabel for="reference" value="Reference :"/>
                <p:inputText id="reference" required="true" requiredMessage="Entrez une reference" disabled="true" value="#{taskTypeBean.taskToUpdate.reference}"/> 
                <p:outputLabel for="description" value="Description :"/>
                <p:inputText id="description" required="true" requiredMessage="Entrez une description" value="#{taskTypeBean.taskToUpdate.description}"/> 
                <p:outputLabel for="HTprice" value="HTprice :"/>
                <p:inputText id="HTprice" required="true" requiredMessage="Entrez un prix hors taxe" value="#{taskTypeBean.taskToUpdate.htPrice}"/> 
                <p:commandButton value="Modifier" id="modifier" action="#{taskTypeBean.updateTaskType}" update=":formTab:taskType" oncomplete="PF('updateDialog').hide()" styleClass="ui-priority-primary" />
            </p:panelGrid>
        </h:form>
    </p:dialog>


    <p:dialog widgetVar="addNewDialog" modal="true" appendTo="@(body)">
        <h:form>
            <p:growl id="growlAdd" showDetail="true" sticky="true" /> 
            <p:panelGrid  columns="2">
                <p:outputLabel for="reference" value="Reference :"/>
                <p:inputText id="reference" required="true" requiredMessage="Entrez une reference" value="#{taskTypeBean.newReference}"/> 
                <p:outputLabel for="description" value="Description :"/>
                <p:inputText id="description" required="true" requiredMessage="Entrez une description" value="#{taskTypeBean.newDescription}"/> 
                <p:outputLabel for="HTprice" value="HTprice :"/>
                <p:inputText id="HTprice" required="true" requiredMessage="Entrez un prix hors taxe" value="#{taskTypeBean.newHTprice}"/> 
                <p:commandButton value="Ajouter" id="ajouter" action="#{taskTypeBean.addNewTaskType}" update=":formTab:taskType" oncomplete="PF('addNewDialog').hide()" styleClass="ui-priority-primary" />
            </p:panelGrid>
        </h:form>
    </p:dialog>


</ui:define>

На этой странице есть 3 различные формы

Итак, мы можем видеть, и у меня есть эта проблема:

javax.servlet.ServletException: MenuItem must be inside a form element
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Я создал эту страницу с очень простым шаблоном, я не могу понять эту проблему.

Спасибо за вашу помощь

...