My Spring MVC应用程序从分布式服务接收PDF数据。然后必须执行2个操作:(1)显示PDF和(2)将视图更改为主应用程序页面。它应该打开一个新的浏览器选项卡以显示PDF,然后在现有选项卡中更改视图。
我已尝试将HttpServletResponse对象中的Content-Disposition标头设置为"附件;文件名= _blank&#34 ;. PDF数据将转换为ByteArrayOutputStream并写入响应对象的OutputStream,并对其进行刷新和关闭。控制器方法代码设置为在PDF数据写入后返回对目标视图的引用。这是来自控制器方法的代码片段:
if ((applicationData.getPdf() != null) {
streamFileToResponse(response, applicationData.getPdf(), "_blank", true);
}
return "mainView";
方法streamFileToResponse()处理设置各种响应标头并将PDF数据写入其输出流。
这导致PDF被下载。至少在Chrome中,用户可以在单独的浏览器标签中打开下载。但是,视图的更改永远不会发生 - 现有选项卡显示用于启动PDF请求的相同视图。
有没有办法在单独的标签页中显示PDF数据并导致现有标签更改其显示的视图?