日期:2014-05-17  浏览次数:20602 次

Struts2整合JasperReport预览HTML格式不显示图片问题解决方案(转)

?关于怎么整合网上到处都是例子、apache也有比较详细的例子说明,我是参考这篇文章的http://www.blogjava.net/sterning/archive/2008/01/02/172317.html我使用他的源码HTML预览时还是不能正常显示,images/px(网上的一种解决方案)都有还是不能正常显示,无奈之下只有查看源代码了。
Struts2对通过JasperReportsResult.java类的doExecute方法对JasperReport进行了简单的整合,这个方法对JasperReport的API简单的包装(车轮理论^_^)

JasperReport?jasperReport?=?(JasperReport)?JRLoader.loadObject(systemId);
????????????jasperPrint?
=?JasperFillManager.fillReport(jasperReport,?parameters,?stackDataSource);
其中systemId是这样来的
String?systemId?=?servletContext.getRealPath(finalLocation);
也就是导入的是Jasper文件的绝对路径,Struts2直接使用的jasper文件(编译报表很耗时!不推荐使用jrxml文件)
<param?name="location">/jasper/notification.jasper</param>
至于Action的代码就不必写的那么复杂了
package?org.bulktree.jasper;

import?net.sf.jasperreports.engine.JRDataSource;
import?net.sf.jasperreports.engine.JREmptyDataSource;
import?net.sf.jasperreports.engine.JasperCompileManager;

import?org.apache.struts2.ServletActionContext;

import?com.opensymphony.xwork2.ActionSupport;

/**
?*?
?*?@author?bulktree?Email:?laoshulin@gmail.com?@?Nov?26,?2008
?*/
public?class?JasperAction?extends?ActionSupport?{