JasperReports: How to call the report in jsp page

krishna picture krishna · Sep 19, 2010 · Viewed 26.9k times · Source

I made one jasper report using iReport 3.7.4 version, now i have to use that or call that report in my java application where i am using servlets, jsp and struts framework, apache tomcat as server.

I want steps regarding how to call the jasper report with some example.

Answer

Bozho picture Bozho · Sep 19, 2010
  1. Compile the report in iReport
  2. Place the compiled report on the classpath
  3. load it with

    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream);
    
  4. Fill it with data. dataSource is the DataSource instance you have - for example a BeanCollectionDataSource

    JasperPrint jasperPrint = 
         JasperFillManager.fillReport(jasperReport, params, dataSource);
    
  5. Export it

    JRPdfExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
    exporter.exportReport();
    
  6. The outputStream above may be either a response.getOutputStream() or a FileOutputStream(), depending on whether you want to send it to a client or you want to store it as a file. If you want to send it to the client, you'd have to send the Content-Disposition header, and some more, but that depends on the format you want to save to. In case you want to print on the client, it's quite a different question - you'd need some client-side code, an applet, for example.