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