makotan _at_ gmail dot com

S2JSFからPDF

S2JSF大前提なんだけど、全然関係ないんだよなぁ〜
JSFからPDFへリダイレクトの方法を探る・・・
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().redirect("hgoehoge.pdf");
streamで流したかったけど、仕方ないかなぁ〜

FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse res = (HttpServletResponse)context.
getExternalContext().getResponse();

String fileName = null;
File file = new File("hogehogeFile.file");
fileName = file.getName();
// バイナリモードの設定
res.setContentType("application/octet-stream; exts=
bin,exe name="+fileName);
//Content-Disposition設定
res.setHeader("Content-Disposition","attachment; 
filename="+fileName);
res.setHeader("Content-Description","file download test");

//コネクションを確立し、バッファ転送する。
BufferedInputStream in = 
new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream out = 
new BufferedOutputStream(res.getOutputStream());
int x;
while( ( x = in.read() ) >= 0){
    out.write(x);
}

in.close();
out.close();

こんな感じで良いのか・・・