Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 点击按钮方法完成后触发下载_Ajax_Jsf_Primefaces - Fatal编程技术网

Ajax 点击按钮方法完成后触发下载

Ajax 点击按钮方法完成后触发下载,ajax,jsf,primefaces,Ajax,Jsf,Primefaces,目前,我正在努力在一个方法完成后下载一个文件 <p:commandButton id="someID" icon="ui-icon-folder-collapsed" actionListener="#{bean.myMethod}" ajax="true" value="test"> </p:commandButton> myMethod做了一些奇特的长流程工作,需要一些时间。我需要的是在my

目前,我正在努力在一个方法完成后下载一个文件

<p:commandButton id="someID"
            icon="ui-icon-folder-collapsed"
            actionListener="#{bean.myMethod}"
            ajax="true" value="test">
</p:commandButton>

myMethod做了一些奇特的长流程工作,需要一些时间。我需要的是在myMethod找到后提供下载。 我的方法调用下载方法来执行一些操作。类似于这里的方法

只要我处理:myMethod我就显示一个“工作指示器”


我了解到我不能从Ajax调用启动下载(Primefaces的命令按钮默认启动)。将属性ajax更改为false时,mymethod处理并在修改后显示下载对话框。问题是在此期间,我没有显示“工作指示器”

Primeface有以下解决方案:
现在我的问题是,是否可以从按钮启动一个方法(并显示“工作指示器”),当该方法完成时,仍然可以通过fileDownload显示下载对话框

只需将代码放入流文件的getter中,您的工作指示符是AjaxStatus还是对话框?!?指示器是一个对话框。试过这个。也不行。100%我的问题是driscriebed:只需将代码放入流文件的getter中。您的工作指示器是AjaxStatus还是对话框?!?指示器是一个对话框。试过这个。也不行。100%我的问题为driscriebed:
<p:ajaxStatus onstart="PF('dia').show()"
    oncomplete="PF('dia').hide()" />

<p:dialog widgetVar="dia" modal="true" draggable="false"
                    closable="false" resizable="false" showHeader="false">
                    <h:outputText value="sometext" />
                    <p:graphicImage value="./img/ajax-loader.gif"></p:graphicImage></p:dialog>