2014-09-18 66 views
0

我有一個導出方法來獲取MongoDB集合中所有項目的CSV。我使用Apache Commons CSV jar。如果我註釋掉響應(),它會給我一個無文件,但如果我包含響應(),它會下載載入我的導出按鈕的頁面上的CSV。此外,它還會下載視圖模板生成的HTML代碼。但是,CSV是在服務器端的播放目錄中生成的(並且是正確的)。已下載的文件是html視圖,而不是我的CSV與Play框架

<a target="_blank" class="btn btn-success" href="@controllers.Application.export" download="Masterlist.csv">Export Domains</a> 

    public static Result export(){ 

    File fi = new File("Masterlist.csv"); 

    try{ 

     CSVPrinter printer = new CSVPrinter(new FileWriter(fi), CSVFormat.TDF); 

     //creates the header for the CSV 

     //creates each line of the CSV 

     printer.close(); 
    }catch(IOException e){ 
     e.printStackTrace();; 
    } 

    //response().setContentType("application/x-download"); 
    //response().setHeader("Content-disposition", "attachment; filename=OLP_Masterlist.csv"); 

    return ok(fi); 
} 

編輯:使用播放框架2.2.1

回答

1

第二集應自動設置。要設置文件名,請使用return ok(fi, "OLP_Masterlist.csv");

在您的超鏈接中,您不應直接引用控制器,而應使用@routes.Application.export。通過使用路線,您將生成正確的鏈接。當您直接引用該方法時,您在加載頁面時正在執行。

相關問題