MenuItem必须在表单元素内,但表单已经存在

时间:2019-01-08 13:12:58

标签: jsf primefaces xhtml

我正在处理素面,但我无法理解此错误。

我所有的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)

我使用非常基本的模板构建了此页面,我无法理解这个问题。

感谢您的帮助

0 个答案:

没有答案