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

2016-02-19 20:07 92 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - Web开发 】

  关于怎么整合网上到处都是例子、apache也有比较详细的例子说明,我是参考这篇文章的http://www.blogjava.net/sterning/archive/2008/01/02/172317.html我使用他的源码HTML预览时还是不能正常显示,images/px(网上的一种解决方案)都有还是不能正常显示,无奈之下只有查看源代码了。

  Struts2对通过JasperReportsResult.java类的doExecute方法对JasperReport进行了简单的整合,这个方法对JasperReport的API简单的包装(车轮理论^_^)

JasperReportjasperReport=(JasperReport)JRLoader.loadObject(systemId);
      jasperPrint=JasperFillManager.fillReport(jasperReport,parameters,stackDataSource);

  其中systemId是这样来的

  StringsystemId=servletContext.getRealPath(finalLocation);

  也就是导入的是Jasper文件的绝对路径,Struts2直接使用的jasper文件(编译报表很耗时!不推荐使用jrxml文件)

  paramname="location"/jasper/notification.jasper/param

  至于Action的代码就不必写的那么复杂了

packageorg.bulktree.jasper;

importnet.sf.jasperreports.engine.JRDataSource;
importnet.sf.jasperreports.engine.JREmptyDataSource;
importnet.sf.jasperreports.engine.JasperCompileManager;

importorg.apache.struts2.ServletActionContext;

importcom.opensymphony.xwork2.ActionSupport;

/**
*
*@authorbulktreeEmail:laoshulin@gmail.com@Nov26,2008
*/
publicclassJasperActionextendsActionSupport{

  privateJRDataSourcereportDataSource;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  @Override
  publicStringexecute()throwsException{
    
    //定义一个自定义的数据源

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

    reportDataSource=newJREmptyDataSource();
    
    /*编译很耗时,Ireport可以编译jrxml文件可以减少程序运行的压力
    *下面一段代码可以不写直接使用Ireport编译好的jasper文件
    *
    */

/*    ServletActionContext.getRequest().setAttribute("name","LAOSHULIN");
    Stringpath=ServletActionContext.getServletContext().getRealPath("/jasper");
    System.out.println(path);
    StringsourceFileName=path+""+"CarInstance.jrxml";
    StringdestFileName=path+""+"CarInstance.jasper";

    JasperCompileManager.compileReportToFile(sourceFileName,destFileName);*/

    returnSUCCESS;
  }

  publicJRDataSourcegetReportDataSource(){
    returnreportDataSource;
  }
}

packageorg.bulktree.jasper;

importnet.sf.jasperreports.engine.JRDataSource;
importnet.sf.jasperreports.engine.JREmptyDataSource;
importnet.sf.jasperreports.engine.JasperCompileManager;

importorg.apache.struts2.ServletActionContext;

importcom.opensymphony.xwork2.ActionSupport;

/**
*
*@authorbulktreeEmail:laoshulin@gmail.com@Nov26,2008
*/
publicclassJasperActionextendsActionSupport{

  privateJRDataSourcereportDataSource;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  @Override
  publicStringexecute()throwsException{
    
    //定义一个自定义的数据源

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

    reportDataSource=newJREmptyDataSource();
    
    /*编译很耗时,Ireport可以编译jrxml文件可以减少程序运行的压力
    *下面一段代码可以不写直接使用Ireport编译好的jasper文件
    *
    */

/*    ServletActionContext.getRequest().setAttribute("name","LAOSHULIN");
    Stringpath=ServletActionContext.getServletContext().getRealPath("/jasper");
    System.out.println(path);
    StringsourceFileName=path+""+"CarInstance.jrxml";
    StringdestFileName=path+""+"CarInstance.jasper";

    JasperCompileManager.compileReportToFile(sourceFileName,destFileName);*/

    returnSUCCESS;
  }

  publicJRDataSourcegetReportDataSource(){
    returnreportDataSource;
  }
}

来源:http://www.tulaoshi.com/n/20160219/1622786.html

延伸阅读
标签: 电脑入门
内存做为电脑三大件配件之一,担负着数据的临时存取等任务。在使用过程中,难免会出现一些问题,如启动电脑却无法正常启动、无法进入操作系统或运行应用软件、无故经常死机等故障,这些问题的产生常会因为内存出现异常故障而导致操作失败。内存出现问题一部分是因为升级内存,由于内存种类的不匹配,往往也会遇到一些问题;另一部分是内存在使用...
随着经济全球化的发展,产生了众多的跨国公司,而Java语言的出现以及网络通讯技术的飞速发展,使企业仅购买一套基于web的企业级应用软件(比如说:OA系统,ERP系统、CRM等),通过网络就能满足整个集团共同使用该软件成为可能。既减少了软件费用,又缩短了信息延迟,提高了企业运作效率。但因为应用系统是面向多个国家,多种语言的,所以在设计...
标签: Web开发
=================================== 开发java应用出现乱码是很常见的,毕竟现在unicode的使用还不是很广泛,在使用gb2312(包含了gbk简体,big5繁体)的系统中要正确实现 中文的display和数据库的存储是最基本的要求。 ============================== 1,首先developer要明确自己为什么会遇到乱码,遇到什么样的乱码...
标签: 孕期
职场孕妈咪常见问题解决方案 现在的女性都比较独立,有自己的事业,很多女性在怀孕以后,出于这样那样的原因,依然无法远离工作岗位,不愿意在家里安心地养胎。这个时候在工作过程当中要注意什么,才能够更好地保护自己和保护肚子里的宝宝呢?我们一起来关注一下吧! 如果已经由医院方面确认说怀孕的话,应该将这件...
标签: 电脑入门
苹果电脑用bootcamp安装双系统,win7下,如果安装苹果自带的 bootcamp程序,或者bootcamp64. 则重启后将会蓝屏,报告驱动不兼容的问题。 网络上的解决思路是: 安好,重启,等待蓝屏重启。然后进入MacOSX系统,安装NTFS读取驱动paragon ntfs for mac。 然后重命名 C:/window/Systam32/driver32下的 applemtp.sys 以及 applemtn.sys 为其他...

经验教程

185

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部