在 Wicket 1.4 中,我有一个自定义 AbstractResourceStreamWriter(用于自定义类型的链接,用于流式传输动态生成的文件):
private AbstractResourceStreamWriter resourceStreamWriter() {
return new AbstractResourceStreamWriter() {
@Override
public void write(OutputStream output) {
try {
reportService.generateReport(output, report);
} catch (ReportGenerationException e) {
// ...
}
}
@Override
public String getContentType() {
return CONTENT_TYPES.get(report.getOutputType());
}
};
}
在 Wicket 1.5 中,IResourceStreamWriter接口已更改,以便该方法获取Response而不是 OutputStream。IResourceStreamWriter javadocs 仍然在谈论 OutputStream 有点令人困惑:
特殊的 IResourceStream 实现,当 Resource 直接想要写入输出流而不是返回 IResourceStream.getInputStream() 时,它可以返回
...
实现该方法直接将资源数据写入给定的OutputStream。
无论如何,我看不到从响应中获取 OutputStream 的快速方法。
鉴于我有一个方法(generateReport(output, report)
上面代码中的调用),它期望一个 OutputStream 写入,让这个工作再次工作的最简单方法是什么?