2016-10-03 64 views
1

我正在使用Primefaces monitorDownload(PF 3.4.2)。Primefaces monitorDownload启动后立即停止火警功能

我想创建一个文件并用commandButton下载它。点击按钮,在启动功能之后立即启动停止功能。然后生成+下载请求正确完成。因此,在下载结束时不会触发结束函数,但在开始时,与启动函数相同。

不是我想要的。我想这样的场景:

  • 点击该按钮出现
  • 加载纺车(显示正逐步生成)
  • 生成的文件
  • 加载纺纱消失的
  • 文件下载请求浏览器

我的代码:

<h:form> 
<pf:panel> 
    <pf:commandButton value="Export database" id="exportDatabase" ajax="false" onclick="PrimeFaces.monitorDownload(window.alert('start'), window.alert('stop'));"> 
    <pf:fileDownload value="#{bean.exportDatabase()}" /> 
    </pf:commandButton> 
</pf:panel> 
</h:form> 

的豆方:

private StreamedContent exportDatabaseFile; 

public StreamedContent exportDatabase() { 

     String exportDatabaseFilename = "nameOfTheFile.xlsx"; 
     Path nameExportDatabasePath = "C:\nameOfTheFile.xlsx";        

     // Populate exportDatabaseFile  
     exportDatabaseFile = new DefaultStreamedContent(new FileInputStream(nameExportDatabasePath.toFile()), FacesContext.getCurrentInstance().getExternalContext().getMimeType(exportDatabaseFilename), exportDatabaseFilename);  
     return exportDatabaseFile; 
} 

如何解决这个问题的任何想法?

+0

你解决了这个问题吗? – Franx

回答

0

尝试使用

private StreamedContent exportDatabaseFile;

public StreamedContent exportDatabase() { 

     String exportDatabaseFilename = "nameOfTheFile.xlsx"; 
     Path nameExportDatabasePath = "C:\nameOfTheFile.xlsx";        

     // Populate exportDatabaseFile  
     return new DefaultStreamedContent(new FileInputStream(nameExportDatabasePath.toFile()), FacesContext.getCurrentInstance().getExternalContext().getMimeType(exportDatabaseFilename), exportDatabaseFilename);    
}