【发布时间】:2012-02-25 09:25:03
【问题描述】:
p:fileDownload 的策略与加载对话框
我正在尝试在开始下载文件后制作加载栏。我的下载按钮是这样的:
<p:commandButton id="btnFirstType"
styleClass="bt_princ"
value="Download File"
onclick="loading.show()"
ajax="false">
<p:fileDownload value="#{mbean.myFile}"/>
</p:commandButton>
<p:dialog modal="true"
widgetVar="loading"
header="Status"
draggable="false"
closable="false">
<p:graphicImage value="/loading.gif" />
</p:dialog>
而我的 MBean 是这样的:
public StreamedContent getMyFile(){
return this.getReport(Type.CSV); //I assure this works, debugged...
}
问题是,点击下载按钮后,如果我启动加载对话框,下载不会发生。
我考虑过使用p:poll 来检查一个布尔变量,以便我知道文件何时生成,所以我可以在单击按钮后显示对话框(比如使用 JavaScript 设置setTimeout),但这可能是我关于如何操作的错误整个事情发生了。还有什么建议吗?
PS1:文件下载后轮询停止,所以不知道什么时候关闭拨号盘
PS2:我使用的是 Primefaces 2.2,无法更新。
PS3:找到 this 解决方法,但“它将”在版本 3 上,所以我不能使用它。
【问题讨论】:
标签: java javascript jsf-2 primefaces