Jasper reports 如何在ajax请求成功后的新选项卡中显示Jasper报告PDF流

Jasper reports 如何在ajax请求成功后的新选项卡中显示Jasper报告PDF流,jasper-reports,Jasper Reports,在下面的代码中,我可以将jasper报告(.jasper)文件导出为HTML或PDF文件到本地文件系统中,但无法在新窗口/选项卡中以PDF格式显示报告 我该怎么做 处理jasper报表pdf创建的Spring控制器类方法 @Controller @RequestMapping("/MySearchCtrl") MySearchCtrl { @Autowired ServletConext servletContex

在下面的代码中,我可以将jasper报告(.jasper)文件导出为HTML或PDF文件到本地文件系统中,但无法在新窗口/选项卡中以PDF格式显示报告

我该怎么做

处理jasper报表pdf创建的Spring控制器类方法

    @Controller
@RequestMapping("/MySearchCtrl")
            MySearchCtrl {

            @Autowired
            ServletConext servletContext;

            @RequestMapping(value="/loadJasperReport", method=RequestMethod.GET)
            public void loadJaspeeReport(HttpServletResponse response, HttpServletRequest request){
            String reportSrcFile = "/WEB-INF/MyReport.jasper";
            try {
            response.setContentType("application/pdf");
            response.addHeader("Content-Disposition","attachment;inline=My_"Report.pdf");
            List<MyReportBean> beanList = new ArrayList<MyReportBean>();
            // add the beans to the beanList here
            InputStream is = this.getClass().getClassLoader().getResourceAsStream(servletContext.getRealPath(reportSrcFile));
            JasperReport jasperReport = (JasperReport)JRLoader.loadObjct(is);
            JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(beanList);
            Map<String,Object> parameters =  new HashMap<String,Object>();
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,parameters,beanCollectionDataSource);
            JasperExportManager.exportReportToPdfStream(jasperPrint,response.getOutputStream()); // DOES NOT WORK. NO ERROR Either
            JasperExportManager.exportReportToHtmlFile(jasperPrint,"C:\\Users\dipak\Deskop\report.html"); // DOES WORK
            JasperExportManager.exportReportToPdfFile(jasperPrint,"C:\\Users\dipak\Deskop\report1.pdf"); //DOES WORK
            } catch(Exception e){
             e.printStackTrace();
            }        
            }
        }

Js文件更改

    function generateJasperReport(){
        window.open('/MySearch/SearchResults/MySearchCtrl/loadJasperReport/'+requestParameter,'_blank');
//_blank is to open in a new tab
            }
     @RequestMapping(value="/loadJasperReport/{requestParam}", method=RequestMethod.GET)
            public void loadJaspeeReport(@PathVariable String requestParam, HttpServletResponse response, HttpServletRequest request){
          // introduced @PathVariable and added requestParam to @RequestMapping
           // remaining code remains same as in question
        }
Servlet Ctrl更改

    function generateJasperReport(){
        window.open('/MySearch/SearchResults/MySearchCtrl/loadJasperReport/'+requestParameter,'_blank');
//_blank is to open in a new tab
            }
     @RequestMapping(value="/loadJasperReport/{requestParam}", method=RequestMethod.GET)
            public void loadJaspeeReport(@PathVariable String requestParam, HttpServletResponse response, HttpServletRequest request){
          // introduced @PathVariable and added requestParam to @RequestMapping
           // remaining code remains same as in question
        }