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

Wicket: Submit button to download binary file

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

对于二进制部分,尝试这样的事情:

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);

否则,要处理 'text' 响应,请使用您已有的代码。