SeamでのCSV出力

Seam(JSF)でCSVを出力する場合、facesContextを利用してファイルデータを書き出す。

String encoding = “Windows-31J”;

String filename = “order.csv”;

ExternalContext externalContext = facesContext.getExternalContext();

HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

response.setContentType(“application/octet-stream; charset=”+encoding);

response.setHeader(“Content-Disposition”,”attachment; filename=¥”"+filename+”¥”");

response.setCharacterEncoding(encoding);

try {

PrintWriter out = response.getWriter();

out.print(“aaaa”,”bbbb”,”cccc”,”dddd”);

out.print(“¥n”);

out.close();

facesContext.responseComlete(); } catch (IOException ex) {

}

このへんの処理も業務システムでは多投する。

もう少しスマートに出来るような仕組みがフレームワーク側にあると便利なのだが…。

コメントは受け付けていません。