基本上就是我想要做的是这样的:http://www.mkyong.com/java/how-to-export-data-to-csv-file-java/建立CSV动态在JSF 2
除了在结尾成为它作为一个下载到用户。 很明显,我无法使用FileWriter,因为我使用的是JSF,但我尝试了通过从外部上下文获取输出流,然后使用输出流(下面的代码)制作缓冲写入器来做类似的事情。根据我的日志完成执行直到最后,但没有保存为弹出对话框。我使用JSF 2(MyFaces)和RichFaces 4.3,如果有更好的方法来使用组件,请告诉我。
externalContext.responseReset();
externalContext.setResponseHeader("Content-Disposition", "attachment; filename=test.csv");
externalContext.setResponseContentType("text/csv");
try {
OutputStream csvOut = externalContext.getResponseOutputStream();
BufferedWriter csvWriter = new BufferedWriter(new OutputStreamWriter(csvOut, "UTF-8"));
csvWriter.append("data,data,data,data");
csvWriter.flush();
csvWriter.close();
csvOut.close();
facesContext.responseComplete();
}catch(Exception ex){
System.out.println(ex.toString());
}
任何建议将帮助很多,一直在努力与此一段时间了。
尝试BalusC的开球示例:http://stackoverflow.com/questions/2914025/forcing-a-save-as-dialogue-from-any-web-browser-from-jsf-application – uzvar 2013-04-26 10:08:49
非常感谢评论,我不能相信我错过了这个问题。无论如何,确切的解决方案没有奏效,但它帮助我朝着正确的方向发展。我不知道如何以某种方式对评论/ +代表进行提名,但是谢谢。只要我被允许,我会尽快回答。 – Vinc 2013-04-26 11:28:49