我想用文件上传来实现表单。我试过这个。
<f:websocket channel="uploadProgress" scope="view" onmessage="updateProgressBar" />
<h:form id="form" enctype="multipart/form-data">
<h:panelGrid columns="2" styleClass="new_table">
..................
</h:panelGrid>
<div class="row">
<h:messages id="uploadMsgId" globalOnly="true" showDetail="false" showSummary="true"/>
<h:inputFile id="fileToUpload" required="true" requiredMessage="No file selected ..." value="#{newProcedure.file}"/>
<h:message showDetail="false" showSummary="true" for="fileToUpload"/>
<h:commandButton value="Upload" action="#{newProcedure.upload()}">
<f:ajax execute="@form" onevent="progressBar" render="@form"/>
</h:commandButton>
<div>
<div id="progressBarId" width="250px;" height="23"/>
</div>
</div>
<h:commandButton styleClass="button" value="Create Procedure" action="#{newProcedure.addNewProcedure(1)}">
<f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>
</h:form>
当我按下内部h:commandButton时我可以上传文件但是当我按下第二个按钮提交带有附件的表单时没有任何反应。 知道为什么它不起作用吗?此外,如果没有选定的文件,我如何提交没有附件的表格?我需要实施一些检查吗?