2017-03-27 22 views
-1

我使用Jasper Reports在java中生成報告。我設置了一些東西,以便在單擊某個項目的鏈接時,會生成一個基於該項目的報告,其中包含圖表圖像。問題是,在生成第一個報告之後,生成的所有後續報告將使用與第一個報告相同的圖像。我想要的是爲每個生成的報告使用它自己的圖表圖像。不知道我做錯了什麼。不同的報告在生成的報告中獲得相同的圖表圖像

注:我知道這些方法已被棄用。在我嘗試升級到新方法之前,我需要對圖像進行處理(我也可以使用幫助,但在時間到了時還會提出一個單獨的問題)。

else if (export_format != null && export_format.equalsIgnoreCase("HTML")) { 
    jasperprint = JasperFillManager.fillReport(inFileStream, map, conn); 
    JRHtmlExporter exporter = new JRHtmlExporter(); 
    HashMap imagesMap = new HashMap(); 
    request.getSession().setAttribute("IMAGES_MAP", imagesMap); 
    request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperprint); 

    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperprint); 
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream()); 
    exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, ""); 
    exporter.setParameter(JRHtmlExporterParameter.HTML_FOOTER, ""); 
    exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE); 
    exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap); 
    exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "jasper/images?image="); 
    exporter.exportReport(); 
} 

回答

1

爲你看到在隨後的報告中第一個圖表是,瀏覽器在碧玉/圖像?圖像緩存圖像=可能的原因...

一個簡單的方法來避免這種情況是添加一個隨機參數的圖片網址:

exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "jasper/images?random=" + java.util.UUID.randomUUID() + "&image="); 
+0

天才。我喜歡我在發佈到stackoverflow後總是意識到自己已經過度使用:-P –