0
私はジャスパーレポートを生成し、後にインラインフレーム(jspページ)で表示したいと考えています。 これを行うには、私が想像できる唯一の方法は、レポートをpdfファイルに書き込んで、何とかこのファイルに参照することです。Java Webapp:ファイルを生成し、JSPの一部として表示しますか?
これは私のテストです:ファイルを正常に生成します。
@RequestMapping(value = "jaspertest", method = RequestMethod.GET)
public ModelAndView report() throws JRException, IOException {
// TODO: compile here
//JasperReport jasperReport = JasperCompileManager.compileReport("path/to/myReport.jrxml");
String fileName = "/jasper/Blank_A4.jasper";
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
InputStream jasperStream = new FileInputStream(file);
ReportSource reportSource = new ReportSource(this.realestateService);
Map<String,Object> params = new HashMap<>();
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, reportSource);
String home = System.getProperty("user.home");
File reportFile = new File(home + "/tomcat/generated/generated_report.pdf");
reportFile.getParentFile().mkdirs();
if (!reportFile.exists())
reportFile.createNewFile();
OutputStream outStream = new java.io.FileOutputStream(reportFile);
//final OutputStream outStream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, outStream);
outStream.close();
return new ModelAndView("report/test","pdf", reportFile.getName());
}
しかし、JSPページは、現在使用するPDFの場所を参照することができれば、私は、理解していません。別の場所を使うべきですか?それとも良い方法がありますか?