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

Wicket:下载二进制文件的提交按钮,wicket,Wicket,我知道如何创建一个普通链接来下载任意二进制数据(使用ResourceLink和ResourceStreamResource和AbstractResourceStream),但现在我想创建一个表单,其提交按钮应该再次重定向到表单(例如,纠正输入错误)或者下载任意二进制数据文件而不转到其他页面。如何实现这一点?对于二进制部分,请尝试以下方法: final ResourceStreamRequestHandler target = new ResourceStreamRequestHandler(ne

我知道如何创建一个普通链接来下载任意二进制数据(使用
ResourceLink
ResourceStreamResource
AbstractResourceStream
),但现在我想创建一个表单,其提交按钮应该再次重定向到表单(例如,纠正输入错误)或者下载任意二进制数据文件而不转到其他页面。如何实现这一点?

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

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);
否则,要处理“文本”响应,请使用您已有的代码