您的位置:首页 > 编程语言 > ASP

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

2011-06-02 14:52 375 查看
核心提示:在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加参数:

代码如下:

JRHtmlExporter exporter = new JRHtmlExporter();

request.getSession().setAttribute(

ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,

jasperPrint);

exporter

.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);

//exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"./servlets/image?image=");

//通过修改图片的url来实 现

exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,

"./servlets/image?"+"time="+(new Date()).toString()+"& image=");

我给image加了个时间参数

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

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

这样,每次都会下载了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: