ファイルダウンロード OutputStreamに直接書き出したい場合
まあ調べればすぐわかるんだけれども、日本語の情報はなかったようなので。
業務で必要になった、POIで処理したExcelをダウンロードするボタン。
例外処理とかてけとー。
//請求書ダウンロードボタン Button<Void> downloadButton = new Button<Void>("downloadButton"){ private static final long serialVersionUID = 1L; @Override public void onSubmit() { IResourceStream stream = new AbstractResourceStreamWriter(){ private static final long serialVersionUID = 1L; @Override public void write(OutputStream output) { try { HSSFWorkbook workbook = //ここでExcel編集とかなんとか workbook.write(output);//適当に書き出す } catch (Exception e) { // TODO 例外処理 e.printStackTrace(); } } @Override public String getContentType() { return "application/vnd.ms-excel"; } }; //TODO ダウンロードファイル名 IRequestTarget target = new ResourceStreamRequestTarget(stream,"text.xls"); getRequestCycle().setRequestTarget(target); } };
お手軽。さすがWicket。