很多人遇到过jasperReport生成的图片会在IE下缓存,多个报表都成了同一个图片.
网上有很多是从jasperReport的编译方式入手,也可以解决.但是我这里要说的是跟Struts2整合后的解决办法,一种更简单的办法
原来我们在做报表的时候:
<result name="success" type="result">
<param name="location">/jasper/regUseLine.jasper</param>
<param name="format">HTML</param>
<param name="reportParameters">reportParameter</param>
<param name="dataSource">chardatabean</param>
<param name="imageServletUrl">/servlets/image?image=</param>
</result>
struts.xml中给Action配置一个result,其中有个属性叫imageServletUrl,解决办法就是给这个请求路径加一个时间戳.
第一步,先写一个Struts2的Result,可以继承JasperReportsResult,然后覆盖里面的属性值,加一个时间戳参数.如此就解决IE下的缓存了.
package report.common.result;
import java.util.Date;
import org.apache.struts2.views.jasperreports.JasperReportsResult;
import com.opensymphony.xwork2.ActionInvocation;
@SuppressWarnings("serial")
public class JsperReportResult extends JasperReportsResult {
@Override
public String getImageServletUrl(){
String[] url = this.imageServletUrl.split("\\?");
StringBuffer t = new StringBuffer("");
t.append(url[0]+("?_t="+(new Date()).getTime())).append("&"+url[1]);
return t.toString();
}
@Override
protected void doExecute(String finalLocation, ActionInvocation invocation)
throws Exception {
this.imageServletUrl = this.getImageServletUrl();
super.doExecute(finalLocation, invocation);
}
}
第二部,修改你的struts.xml,
<package name="jasperReport" extends="struts-default,jasperreports-default">
<result-types>
<result-type name="jasperResult" class="report.common.result.JsperReportResult"></result-type>
</result-types>
<action name="HTML" class="report.actions.jsperreport.ChardataAction">
<result name="success" type="jasperResult">
<param name="location">/jasper/regUseLine.jasper</param>
<param name="format">HTML</param>
<param name="reportParameters">reportParameter</param>
<param name="dataSource">chardatabean</param>
<param name="imageServletUrl">/servlets/image?image=</param>
</result>
</action>
</package>
注意,将你的返回类型改为你配置的result-type,我这里名字叫jasperResult
分享到:
相关推荐
整合Struts2+JasperReport3 详细讲解利用iReport开发报表
Struts2整合JasperReport所需要的jar包
ssh三大框架简单整合,struts2整合JasperReport报表,解决HTML显示图片不出来,PDF中文不显示的问题 网上找答案,乱七八糟的!我研究了几天,终于彻底搞明白了!代码里有些注释,有凝问的可以留言。。。。。。 ...
使用Spring2.5+Struts2+ibatis+jasperreport3.1.4 实现Struts2与Jasperreport报表结合
整合Struts2+JasperReport Web报表应用示例 整合Struts2+JasperReport Web报表应用示例
本例子是运用Struts2和JasperReport整合完成的。修改下数据库,就可以直接运行,导出各种格式的报表了。对初学者很有用。
而随着Struts2的流行,就应该研究一下在Struts2下如何利用JasperReports进行报表输出。本示例比较简单,采用的数据源即为JavaBean,而没有采用复杂的数据库,其实原理是一样的。只是传递给JasperReports的参数随着...
整个工程+jar包都放上去了,直接import这个工程就可以用
官方发布的 struts2-jasperreport-plugin-2.1.6存在以下问题: 1、普通报表HTML、Excel格式浏览存在px图片无法显示; 2、解决问题:图形报表一次请求返回多张时存在报表覆盖异常现象; 3、支持数据源单一(改造后支持...
maven struts2 jasperreport ireport亲测通过整合多家资源
该工程下有ssh所需jar包,hicharts报表导出功能所需jar包,以及Jasperreport报表导出所需的jar包,主要是利用Jasperreport实现报表导出功能,可以完整跑通
struts2 jasperreport
Struts2集成jasperreport3.7.1所需的所有的Jar文件,已经经过测试,请放心使用。
官方的struts2-jasperreport-plugin-2.1.6.jar,分享于有需要的朋友~~
struts2结合jasperreport的一个小项目,做了一张销售统计表,导出方式有5种(html,xml,pdf,cvs,xls)。 主要用到MyEclipse插件JasperAssistant图形开发工具来设计报表,设计的报表有源文件jasperDemo.jrxml和编译后...
struts jasperreport ireport5.0 字报表数据传递 子报表路径问题 中文问题
JasperReport Struts2 web 整合所需完整jar ant-1.7.1.jar antlr-2.7.5.jar asm.jar bsh-2.0b4.jar cglib-2.1.jar commons-beanutils-1.7.0.jar commons-beanutils-1.7.jar commons-collections-2.1.jar commons-...
在官方struts2-jasperreport-plugin-2.1.6基础上,解决问题有二:一是普通报表HTML及Excel格式预览无法显示px图片,二是图形报表HTML格式无法展示;分享于有需要的朋友~~
在原有官方struts2-jasperreport-plugin-2.1.6.jar的基础上解决了三个问题:一是普通报表HTML及Excel格式预览无法显示px图片;一是图形报表无法HTML格式预览;一是图形报表一次请求返回多张时存在报表覆盖异常现象;