一、准备
下载iReport3.7.1、JasperReport3.7.1、Struts2.1.8及其他需要的包
如需生成Excel的话,还需导入poi-3.5.jar包。
二、整合Struts2+JasperReport3
1. 新建以下三个pojo类:
Address
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packagecom.xy.report.pojo;
publicclassAddress{
privateStringcity;
privateStringzipcode;
publicStringgetCity(){
returncity;
}
publicvoidsetCity(Stringcity){
this.city=city;
}
publicStringgetZipcode(){
returnzipcode;
}
publicvoidsetZipcode(Stringzipcode){
this.zipcode=zipcode;
}
}
Company
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packagecom.xy.report.pojo;
importjava.util.HashSet;
importjava.util.Set;
publicclassCompanyimplementsComparable<Company>{
privateStringname;
privateAddressaddress;
privateSet<Staff>staffs=newHashSet<Staff>();
@Override
publicintcompareTo(Companyo){
returno.getName().compareTo(this.getName());
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicAddressgetAddress(){
returnaddress;
}
publicvoidsetAddress(Addressaddress){
this.address=address;
}
publicSet<Staff>getStaffs(){
returnstaffs;
}
publicvoidsetStaffs(Set<Staff>staffs){
this.staffs=staffs;
}
}
Company中compareTo方法用于在报表中排序。
Staff
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packagecom.xy.report.pojo;
publicclassStaff{
privateStringname;
privateCompanycompany;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicCompanygetCompany(){
returncompany;
}
publicvoidsetCompany(Companycompany){
this.company=company;
}
}
以上Address是Company的组件,Company与Staff是一对多关系。
2. 新建Action
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packagecom.xy.report.action;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importcom.opensymphony.xwork2.ActionSupport;
importcom.xy.report.pojo.Address;
importcom.xy.report.pojo.Company;
importcom.xy.report.pojo.Staff;
publicclassDemoActionextendsActionSupport{
privatestaticfinallongserialVersionUID=-5460323122712890562L;
privateList<Staff>list;
privateMap<String,Object>map;
@Override
publicStringexecute(){
list=getData();
map=getParameter();
returnSUCCESS;
}
privateList<Staff>getData(){
Addressaddress=newAddress();
address.setCity("上海");
address.setZipcode("201400");
Companycompany1=newCompany();
company1.setName("飞利浦");
company1.setAddress(address);
Companycompany2=newCompany();
company2.setName("谷歌");
company2.setAddress(address);
Staffstaff1=newStaff();
staff1.setName("张三");
staff1.setCompany(company1);
Staffstaff2=newStaff();
staff2.setName("李四");
staff2.setCompany(company2);
Staffstaff3=newStaff();
staff3.setName("王五");
staff3.setCompany(company1);
List<Staff>list=newArrayList<Staff>();
list.add(staff1);
list.add(staff2);
list.add(staff3);
returnlist;
}
privateMap<String,Object>getParameter(){
Map<String,Object>map=newHashMap<String,Object>();
map.put("date","2010-03-12");
returnmap;
}
//getter,setter
publicList<Staff>getList(){
returnlist;
}
publicvoidsetList(List<Staff>list){
this.list=list;
}
publicMap<String,Object>getMap(){
returnmap;
}
publicvoidsetMap(Map<String,Object>map){
this.map=map;
}
}
以上list为提供给报表的数据源,map为提供给报表的参数,如日期范围等。struts.xml配置如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<includefile="struts-default.xml"></include>
<!--报表演示-->
<packagename="default"namespace="/reports"extends="struts-default,jasperreports-default">
<actionname="demoReport"class="com.xy.report.action.DemoAction">
<resultname="success"type="jasper">
<paramname="location">/reports/demoReport.jasper</param>
<paramname="dataSource">list</param>
<paramname="format">PDF</param>
<paramname="reportParameters">map</param>
</result>
</action>
</package>
</struts>
location - 提供利用iReport制作编译好的报表文件。
dataSource - 数据源
format - 报表输出格式
reportParameters - 报表参数
三、利用iReport开发报表
1. 新建数据源
打开iReport,点击下图像插头一样的Report Datasources,弹出对象框中New,选择"JavaBeans set datasource"后Next,输入Name为"demo"后Save,如下两图:
分享到:
相关推荐
分为:struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _01部分 struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _02部分 只要将这两个包全下载下来,就可以搭建struts2.1.8 + spring 2.5 + ibatis2整合开发的...
分为:struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _01部分 struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _02部分 只要将这两个包全下载下来,就可以搭建struts2.1.8 + spring 2.5 + ibatis2整合开发的...
struts2.1.8+spring+hibernate框架整合所需jar包 其中还包括一个mysql数据库驱动包
Struts2.1.8+Hibernate3.3+Spring3.0环境搭建
Struts2.1.8+Spring2.5.6+hibernate3.2.3整合
J2EE企业应用开发框架类库包源文件struts2.1.8+spring2.5.6
spring2.5.6 +struts2.1.8+hiernate3.3.2(jar)
Struts2.1.8+Felix1.4+hibernate集成源码,内部是自己通过查资料以及编写部分中间件host-register完成Hibernate3.1.3,Struts2.1.8,felix-1.4的集成。该部分的说明会在博文中说明,敬请关注,大家共同进步。
struts2.1.8+spring2.5.6+hibernate3.3.2整合项目开发 比较完整哦 可以作为模板的
spring3.0+struts2.1.8+hibernate3.2完整jar包,保证非常全,放心下载使用。
struts2.1.8 + spring2.5.6 + hibernate3.3.2整合,可以看一下,比较完全
struts2.1.8+hibernate3.6.1+spring2.5.6架包,整合在一起的
struts2.1.8+spring2.5+hibernate3.3.2+c3p0所有jar包
Spring2.5.6+struts2.1.8+hibernate3.3.2框架集成模板
web开发常用的jar包,struts2.1.8+Hibernate3.3+spring2.5.6+extjs3.2的jar包
Struts2.1.8+Hibernate3.3+Spring3.0整合所.rar.rar
struts2.1.8+spring3.0+ibatis2.3优雅框架 sorry包有点大没能上传,见附件截图
本Demo基于annotation的Struts2.1.8+Spring2.5.6+Hibernate3.3.2的整合
struts2.1.8 + spring2.5.6(支持注解开发Annotations) + hibernate3.3.2(支持注解开发Annotations) + mysql-connector-java-5.1.7-bin.jar 精简完整版,测试可用