JasperReports:如何在jsp页面中调用报告

kri*_*hna 9 java jsp jasper-reports struts-1

我使用了一个jasper报告iReport 3.7.4 version,现在我必须使用它或在我的java应用程序中调用该报告,其中我使用servlet,jsp和struts框架,apache tomcat作为服务器.

我想要一些关于如何使用一些例子来调用jasper报告的步骤.

Boz*_*zho 8

  1. 在iReport中编译报告
  2. 将编译的报告放在类路径上
  3. 加载它

    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 填写数据.dataSourceDataSource你拥有的实例 - 例如aBeanCollectionDataSource

    JasperPrint jasperPrint = 
         JasperFillManager.fillReport(jasperReport, params, dataSource);
    
    Run Code Online (Sandbox Code Playgroud)
  5. 出口它

    JRPdfExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
    exporter.exportReport();
    
    Run Code Online (Sandbox Code Playgroud)
  6. outputStream上面可以是一个response.getOutputStream()或一个FileOutputStream(),取决于你是否想将它发送到客户端,或者您希望将其保存为一个文件.如果要将其发送到客户端,则必须发送Content-Disposition标题等等,但这取决于要保存的格式.如果你想在客户端打印,这是一个完全不同的问题 - 你需要一些客户端代码,例如applet.


Neu*_*ino 1

这段代码应该可以让您了解如何做到这一点

JasperReport jr=JasperCompileManager.compileReport("yourJRXMLFilePath");
JasperPrint jrPrint = JasperFillManager.fillReport(jr,mapWithParameters,aJRDataSource);
JasperExportManager.chooseYourFavoriteMethod(jrPrint,"destinationFile");
Run Code Online (Sandbox Code Playgroud)

否则,检查api 如果您已经使用 iReport 编译了文件,则可以省略第一行。在这种情况下,请检查 JasperFillManager 上的 api 方法是否正确。