Wicket でのファイルダウンロードするパターンを書き直すことにした。
2年前に書いたものはダウンロードも何もいきなりブラウザ表示しようとする場合もあるので、
ファイルのダウンロードパターンとしてあまり良くない。
public class Downloader extends WebPage{
public Downloader(){
getRequestCycle().replaceAllRequestHandlers(
new ResourceStreamRequestHandler(new AbstractResourceStreamWriter(){
@Override
public void write(OutputStream outputStream) {
try{
// TODO outputStream に出力する。
}catch(Exception e){
logger.error(e.getMessage(), e);
// TODO エラーの場合、何かをする。
}
}
@Override
public String getContentType() {
return "application/xxxxxx";
}
}, "xxxx.xxx" ) // ダウンロードファイル名
);
}
}
========================
いきなり、ブラウザ表示させるなら、、
getRequestCycle().scheduleRequestHandlerAfterCurrent(IRequestHandler handler)
を使う。