JasperReport在导出html中应用iframe所遇到的缓存问题

核心提示:在IE中,IFrame中的图片存在缓存机制! 怎么让Jasperreports生成的报表图片,不缓存呢?! 首先,通过firebug查看生成的报表图片代码: img alt= style=height: 310px; src=./servlets/image?image=img_0_0_9/ 当更改查询条件时,所生成的报表图片代码并没有

在IE中,IFrame中的图片存在缓存机制!

怎么让Jasperreports生成的报表图片,不缓存呢?!

首先,通过firebug查看生成的报表图片代码:

<img alt="" style="height: 310px;" src="./servlets/image?image=img_0_0_9"/>

当更改查询条件时,所生成的报表图片代码并没有改变,所以IE便不去下载该图片。在IFrame中右键刷新一下

图片便能显示!

如果每次生成的图片名都不一样,那么IE便自动每次都要下载了。解决方法就是给image加参数:

代码如下:

  1. JRHtmlExporter exporter = new JRHtmlExporter();      
  2.             request.getSession().setAttribute(      
  3.                     ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,      
  4.                     jasperPrint);      
  5.             exporter      
  6.                     .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);      
  7.             exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);      
  8. //exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"./servlets/image?image=");      
  9. //通过修改图片的url来实 现                 
  10. exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,      
  11.                     "./servlets/image?"+"time="+(new Date()).toString()+"& image=");    

 

我给image加了个时间参数

生成的报表图片代码如下:

  1. <img alt="" style="height: 310px;" src="./servlets/image?time=Tue Jun 30 17:35:36 CST 2009&image=img_0_0_9"/>  

这样,每次都会下载了!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值