我目前在Spring控制器中使用以下代码导致PDF文件被下载:
@RequestMapping(value = {"/testReport"}, method = RequestMethod.GET)
public void testReport(ModelMap model, HttpServletResponse response) throws IOException, JRException
{
Resource resource = new ClassPathResource("reports/testReport.jasper");
InputStream jasperStream = resource.getInputStream();
Map<String, Object> params = new HashMap<>();
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
response.setContentType("application/x-pdf");
response.setHeader("Content-disposition", "inline; filename=testReport.pdf");
final OutputStream outStream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
}
我正在寻找一种不下载PDF文件的方法,而是在新的浏览器标签中打开它。这是调用此方法的HTML代码:
<a href="/reports/testReport" target="_blank">Test</a>
我很确定这与我的控制器方法中的最后两行有关,但我找不到任何关于如何将PDF导入新标签而不是使用Jasper下载文件的文档。
任何帮助将不胜感激!
谢谢!
****** ****** EDIT
这不是一个重复的帖子,我找到了解决方案并将其发布在答案中。