Java 如何在p:fileUpload正在进行时显示小部件

Java 如何在p:fileUpload正在进行时显示小部件,java,file-upload,primefaces,Java,File Upload,Primefaces,我正在使用此文件上载从Excel工作表上载文档 <h:form id="leForm2" enctype="multipart/form-data"> <p:fileUpload mode="advanced" showButtons="FALSE" label="{mess

我正在使用此文件上载从Excel工作表上载文档

                    <h:form id="leForm2" enctype="multipart/form-data">
                        <p:fileUpload
                             mode="advanced"  showButtons="FALSE"
                             label="{messages['upload.xls']}"                                                       
                            fileUploadListener="#{bean.handleFileUpload}"                                                           
                            id="uploadCargaMasiva" update="messages3, :tabs:formTab2:documentoList" auto="true"                                                                                     
                            allowTypes="/(\.|\/)(xls|xlsx)$/"/>
                        <p:growl id="messages3" escape="true" sticky="false"
                            lifetime="800" showDetail="false" />                            
                    </h:form>

这正如预期的那样有效。我的问题是在上传过程中我需要显示一个p:对话框,我找不到这样做的方法

这是我的对话:

<p:dialog widgetVar="statusDialog" modal="true" draggable="false" closable="false" resizable="false">
    <p:graphicImage value="/images/ajaxloadingbar.gif" />
</p:dialog> 

我不知道怎么称呼它,也不知道它在哪里

                <h:form id="leForm2" enctype="multipart/form-data">
                    <p:fileUpload
                         mode="advanced"  showButtons="FALSE"
                         label="{messages['upload.xls']}"                                                       
                        fileUploadListener="#{bean.handleFileUpload}"                                                           
                        id="uploadCargaMasiva" update="messages3, :tabs:formTab2:documentoList" auto="true"                                                                                                            onstart="statusDialog.show()"
                        allowTypes="/(\.|\/)(xls|xlsx)$/"/>
                    <p:growl id="messages3" escape="true" sticky="false"
                        lifetime="800" showDetail="false" />                            
                </h:form>
widgetHide是一个JS函数:

<script type="text/javascript">  
    function widgetHide()
    {                                   
        statusDialog.hide();    
    }

</script>

函数widgetHide()
{                                   
statusDialog.hide();
}

正如所建议的,onstart和oncomplete应该可以做到这一点,但由于某些原因oncomplete不起作用。所以我不得不做这个练习来让它起作用。

PrimeFaces文件上传有
onstart
onerror
oncomplete
用于客户端行为。你试过吗?比如
onstart=“PF('statusDialog')。show()“
谢谢您的回复!尝试了一下,但没有成功。或者我做错了什么?您使用的是什么primefaces版本?primefaces 3.4没有提供
onerror
afaik,但其他两个应该可以。但是语法应该是
onstart=“statusDialog.show()”
-我之前的回答与PF 5.0onstart有关,它工作正常!但oncomplete似乎不起作用:我正在使用statusDialog.hide(),但它从未消失:/
<script type="text/javascript">  
    function widgetHide()
    {                                   
        statusDialog.hide();    
    }

</script>