最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。
【 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{
//定义一个自定义的数据源
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{
//定义一个自定义的数据源
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
看过《Struts2整合JasperReport预览HTML格式不显示图片问题解决方案》的人还看了以下文章 更多>>