我想通过文件上传来实现表单。我试过这个。
<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 时,我可以上传文件,但是当我按下第二个按钮提交带有附件的表单时,没有任何反应。知道为什么它不起作用吗?另外,如果没有选定的文件,我如何在没有附件的情况下提交表格?我需要进行一些检查吗?