2016-10-03 107 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);    
}