WebResource ファイルのダウンロード


wicketで、ファイルのダウンロード機能を作るには、WebResourceを作って、
それをResourceLinkのResourceとしてセットします、すると、リンク押下時に、ダウンロードできるようになります。

WebResource export = new WebResource() {
        @Override
        public IResourceStream getResourceStream() {
           wicket.util.file.File wicketFileResource = new wicket.util.file.File(file);
           return new FileResourceStream(wicketFileResource);
        }
 
        @Override
        protected void setHeaders(WebResponse response) {
           super.setHeaders(response);
           response.setAttachmentHeader(file.getName());
        }
    };
    export.setCacheable(false);
    ResourceLink downLoadLink = new ResourceLink("download", export);
    downLoadLink.setOutputMarkupId(true);
    add(downLoadLink);
 

まず、Resourceを正しく生成してあげないと、ダウンロード機能がうまく動かないので注意。
ファイルダウンロードの場合、FileResourceStreamという便利なResourceStreamがあるので、それにFileResourceをセット。
setHeaders()では、responseにfile.getName()というダウンロード時のファイル名をセットしてます。
最終更新:2008年04月25日 19:36