Wicket:提交按钮下载二进制文件

时间:2015-06-04 14:38:17

标签: wicket

我知道如何创建一个简单的链接来下载任意二进制数据(使用ResourceLinkResourceStreamResourceAbstractResourceStream),但现在我想创建一个表单,其提交按钮应该是再次重定向到表单(例如,更正输入错误)或下载任意二进制数据文件而不转到不同的页面。如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

对于二进制部分,请尝试以下方法:

final ResourceStreamRequestHandler target = new ResourceStreamRequestHandler(new AbstractResourceStream() {
    @Override
    public String getContentType() {
        return "application/octet-stream";
    }

    @Override
    public InputStream getInputStream() throws ResourceStreamNotFoundException {
        return new ByteArrayInputStream(yourBinaryContent);
    }

    @Override
    public void close() throws IOException {
    }
});
target.setFileName("response.dat");
target.setContentDisposition(ContentDisposition.ATTACHMENT);

getRequestCycle().scheduleRequestHandlerAfterCurrent(target);

否则,要处理“文本”回复,请使用您已有的代码。