在这种情况下它工作正常,上传文件没有问题(在我编辑web.xml之前添加过滤器和faces-confing添加依赖项):
<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>
答案 0 :(得分:2)
您不能在JSF中嵌套表单。在HTML中执行此操作无效,因此在JSF中无效,因为它已转换为HTML。
无论您删除“主”表单,您都没有内部表单,并且在您的网站上有2个表单。