読者です 読者をやめる 読者になる 読者になる

Wicket でファイルダウンロード

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)

を使う。