我正在使用Primefaces 4.0进行文件下载.我只想在下载完成时触发JS功能,但似乎无法工作(在Firefox和谷歌浏览器中尝试过).我的测试用例看起来类似于PF文档中的操作:
@ManagedBean
@ViewScoped
public class Bean implements Serializable {
public StreamedContent getFile() {
return new DefaultStreamedContent(new ByteArrayInputStream(new byte[0]));
}
}
下载开始时会触发警报,但下载完成时则不会触发警报.还有其他人可以尝试一下吗?
这是一个错误.
主要错误是在FileDownloadActionListener
的org.primefaces.component.filedownload
包.
第65行
externalContext.addResponseCookie(Constants.DOWNLOAD_COOKIE, "true", Collections.<String, Object>emptyMap());
这Constants.DOWNLOAD_COOKIE
是"primefaces.download",它永远不会与响应一起发送.
这将导致PrimeFaces.monitorDownload
Interval永远不会调用stop函数,因为cookie永远不会被写入.