Spring mvc Spring MVC-在单独的浏览器选项卡中显示PDF&;在现有选项卡中重定向

Spring mvc Spring MVC-在单独的浏览器选项卡中显示PDF&;在现有选项卡中重定向,spring-mvc,pdf,tabs,Spring Mvc,Pdf,Tabs,我的SpringMVC应用程序从分布式服务接收PDF数据。然后它必须采取两个操作:(1)显示PDF和(2)将视图更改为主应用程序页面。它应该打开一个新的浏览器选项卡以显示PDF,然后在现有选项卡中更改视图 我已尝试将HttpServletResponse对象中的内容处置头设置为“attachment;filename=\u blank”。PDF数据将转换为ByteArrayOutputStream,并写入响应对象的OutputStream,该输出流将被刷新和关闭。控制器方法代码设置为在PDF数据

我的SpringMVC应用程序从分布式服务接收PDF数据。然后它必须采取两个操作:(1)显示PDF和(2)将视图更改为主应用程序页面。它应该打开一个新的浏览器选项卡以显示PDF,然后在现有选项卡中更改视图

我已尝试将HttpServletResponse对象中的内容处置头设置为“attachment;filename=\u blank”。PDF数据将转换为ByteArrayOutputStream,并写入响应对象的OutputStream,该输出流将被刷新和关闭。控制器方法代码设置为在PDF数据写入后返回对目标视图的引用。以下是控制器方法的代码片段:

if ((applicationData.getPdf() != null) {
  streamFileToResponse(response, applicationData.getPdf(), "_blank", true);
}

return "mainView";
方法streamFileToResponse()处理设置各种响应头并将PDF数据写入其输出流

这将导致PDF被下载。至少在Chrome中,用户可以在单独的浏览器选项卡中打开下载。但是,视图的更改从未发生过——现有选项卡显示的视图与用于启动PDF请求的视图相同


是否有一种方法可以在单独的选项卡中显示PDF数据,并使现有选项卡更改其显示的视图?

是否可以让客户端应用程序在新选项卡中打开PDF链接?我探索了一种方法,即在用于启动PDF请求的表单中添加目标属性。这导致PDF显示在新的浏览器选项卡中,但也带来了一些不良的副作用(表单中还有其他按钮,单击它们也会打开新的浏览器选项卡)。这种方法也不允许更改现有选项卡中的视图。