3

我想通过文件上传来实现表单。我试过这个。

<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>&nbsp;
</h:form>

当我按下内部 h:commandButton 时,我可以上传文件,但是当我按下第二个按钮提交带有附件的表单时,没有任何反应。知道为什么它不起作用吗?另外,如果没有选定的文件,我如何在没有附件的情况下提交表格?我需要进行一些检查吗?

4

0 回答 0