2017-03-27 16 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

あなたは、後続のレポートで最初のグラフを参照している可能性が高い理由は、ブラウザが碧玉/画像で画像をキャッシュすること?イメージ= ...これを回避する

一つの簡単な方法は、追加することです画像へのランダムなパラメータURL:

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

Genius私はstackoverflowに投稿した後、私がいつも思っていることをいつも気づいています: - P –

関連する問題