Struts2整合JasperReport

104 篇文章 1 订阅
11 篇文章 0 订阅

转载自:http://blog.csdn.net/zhutianxiang/article/details/5783299

先介绍一下它们的关系:

jasperReport:一个开源的,强大灵活的报表类库,能生成html,pdf,xls等等其它格式报表。

官网:http://jasperforge.org/projects/jasperreports

下载时把整个工程下下来。如图:

ireport:是jasperReport的可视化设计工具,使用ireport,可以更快地设计出想要的报表

下载:http://jasperforge.org/projects/ireport

它有各个平台下的版本,windows下的下来直接安装即可,切记要下载与JasperReport相同版本的iReport。

struts2:著名的mvc框架,不多说了。官网:http://struts.apache.org/

用到的jar包:

在struts2的(根据情况可再筛选):

在jasperReport的:

说明:itextAsian.jar 是为了在PDF中文能正确显示的包。

整理下Struts2整合JasperReport时jar包的来源:

从struts2的源码文件的lib文件夹内拷贝必要的struts2的jar包,同时拷贝struts2-jasperreports-plugin-*.jar包;

从下载的jasperReport的dist目录下拷贝jasperreports-*.jar包;

从下载的jasperReport的lib目录下拷贝所有jar包(或则为具体报表类型筛选对应的jar包);

若以上jar包内不包含iTextAsian.jar包,则再从http://itextpdf.sourceforge.net/下载iTextAsian.jar包;

 


 

平时我们做开发时,是先用ireport设计好报表,然后编译得到名为xxx.jasper的文件。再把xxx.jasper放到工程下使用,下面是做的一个列子(使用javabean数据源):

1.运行我们的ireport,新建一个report文件;

2.设置我们javabean的classpath路径,工具,选项,classpath,addFolder,选择工程下的的classpath路径加进去;如我的:F:/ansure_g_struts2/ext_struts2_004/WebRoot/WEB-INF/classes

3.为report添加数据源,右击report的名称,选择Edit query,javabean datasource,输入你的javabean名称,把其属性列表读取出来,把要打印的属性加到下面去,点确定。如图:

4.这样我们就可以在左侧的树形目录下看到Fields下有相关的属性,把他们拖到报表的detail 区域下,如图:

5.点击编译,生成xxx.jasper文件。

6.在你的web工程的根目录下建立一个文件夹jasper,把xxx.jasper文件放进该目录下

7.配置struts.xml:

[xhtml]  view plain copy
  1. <action name="PDF" class="studentJasperAction">  
  2.            <!-- jasper结果类型 -->  
  3.            <result name="success" type="jasper">  
  4.               <!-- jasper文件位置 -->  
  5.               <param name="location">/jasper/Students.jasper</param>  
  6.               <!-- 报表类型 -->  
  7.               <param name="format">PDF</param>  
  8.               <!-- 报表数据源:getStudent()方法的返回值作为数据源 -->  
  9.               <param name="dataSource">student</param>  
  10.            </result>  
  11.        </action>  

[xhtml]  view plain copy
  1. <action name="XLS" class="studentJasperAction">  
  2.            <result name="success" type="jasper">  
  3.               <param name="location">/jasper/Students.jasper</param>  
  4.               <param name="format">XLS</param>  
  5.               <param name="dataSource">student</param>  
  6.            </result>  
  7.        </action>  

8.写一个提供数据源的javabean(省略getter、setter方法):

[java]  view plain copy
  1. public class Student {  
  2.       
  3.     private int stuid;  
  4.     private String stuname;  
  5.     private String stuphoto;  
  6.       
  7.     public Student(int stuid,String stuname,String stuphoto){  
  8.         this.stuid = stuid;  
  9.         this.stuname = stuname;  
  10.         this.stuphoto = stuphoto;  
  11.     }  
  12. }  

8.写一个Action类:

[java]  view plain copy
  1. public class StudentJasperAction extends ActionSupport {  
  2.       
  3.     private List student;  
  4.       
  5.     public List getStudent(){  
  6.         student = new ArrayList();  
  7.         for(int i=0;i<50;i++){  
  8.             Student stu = new Student(i,"zs"+i,"15088668850");  
  9.             student.add(stu);  
  10.         }  
  11.           
  12.         return student;  
  13.     }  
  14.       
  15.     public String execute() throws Exception{  
  16.         return super.execute();  
  17.     }  
  18.   
  19. }  

9.写一个JSP:

[xhtml]  view plain copy
  1. <body>  
  2.   
  3.     打印、预缆报表 <hr>  
  4.   
  5.     <a href="PDF.action" mce_href="PDF.action">PDF格式报表</a><br/>  
  6.   
  7.     <a href="XLS.action" mce_href="XLS.action">EXCLE格式报表</a>  
  8.   
  9.   </body>  

 

如果你对iReport很生疏,无法开展工作。你可以去电驴里搜浪曦网风中叶的Struts2专题的视频,其中有3集是详细介绍JasperReport、iReport、及Struts2与JasperReport整合应用的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值