Primefaces 3.5 fileuploauder表单不能在其他表单中工作



在这种情况下,它工作正常,上传文件没有问题(在我编辑web.xml添加过滤器和faces-conf添加依赖之前):

<h:form id="form1">
    <p:messages id="messages" showDetail="true" autoUpdate="true" />
    <p:panel header="Iniciar sesión" style="width:300px;height:150px;">

        <h:panelGrid columns="2" id="matchGrid">
            <h:outputLabel for="pwd1" value="Usuario: *" />
            <p:inputText id="pwd1" value="#{loginMB.usuario}" label="usuario"
                required="true" />
            <h:outputLabel for="pwd2" value="Clave: *" />
            <p:password id="pwd2" value="#{loginMB.clave}" label="clave"
                required="true" />
        </h:panelGrid>
        <p:commandButton id="saveButton" action="#{loginMB.login}"
            update="matchGrid" value="Entrar" />
    </p:panel>
</h:form>
<h:form enctype="multipart/form-data">
    <p:messages showDetail="true" />
    <p:fileUpload value="#{contratosMB.fileContrato}" mode="simple" />
    <p:commandButton value="Submit" ajax="false"
        actionListener="#{contratosMB.upload}" />
</h:form>

但是当我把它放在另一个形式它不工作,为什么?

<h:form id="form3sd">
    <h:form id="form1">
        <p:messages id="messages" showDetail="true" autoUpdate="true" />
        <p:panel header="Iniciar sesión" style="width:300px;height:150px;">

            <h:panelGrid columns="2" id="matchGrid">
                <h:outputLabel for="pwd1" value="Usuario: *" />
                <p:inputText id="pwd1" value="#{loginMB.usuario}" label="usuario"
                    required="true" />
                <h:outputLabel for="pwd2" value="Clave: *" />
                <p:password id="pwd2" value="#{loginMB.clave}" label="clave"
                    required="true" />
            </h:panelGrid>
            <p:commandButton id="saveButton" action="#{loginMB.login}"
                update="matchGrid" value="Entrar" />
        </p:panel>
    </h:form>
    <h:form enctype="multipart/form-data">
        <p:messages showDetail="true" />
        <p:fileUpload value="#{contratosMB.fileContrato}" mode="simple" />
        <p:commandButton value="Submit" ajax="false"
            actionListener="#{contratosMB.upload}" />
    </h:form>
</h:form>

在JSF中不能嵌套表单。在HTML中这样做是无效的,因此在JSF中也是无效的,因为它被转换为HTML。

是否删除"母版";表单,你你的网站上没有内部表单,只有两个表单。

参见

  • 如何使用在JSF页面?单形式?多种形式?嵌套形式?,尤其是这个答案解释得很好

最新更新