最近使用了jasperreports作为项目的报表工具,故写下此文以作备忘。项目采用的struts2版本为2.2.1,jasperreports版本为3.7.2。jasperreports以struts2插件的方式整合到项目中。本文只是一个简单的例子。
1. 首先,需要在项目中加入以下的jar包
其中poi.jar不是必需的,如果你要导出excel,可以加上此包。(注:所有jar包可以通过struts2-2.2.1以及ireport安装包获得)
2. 接下来是web.xml的配置,使用最基本的配置即可:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
3. 创建ReportsAction
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ReportsAction extends ActionSupport {
private static final long serialVersionUID = 1L;
//数据源
private List<Object> list;
//jasperreports接收的参数
private Map<String, Object> params = new HashMap<String, Object>();
public String execute() throws Exception {
//伪代码
list = getXXService().query...;//调用service方法
params.put("key1", value1);
params.put("key2", value2);
try {
//读取jasper模板
String reportSource = ServletActionContext.getServletContext().getRealPath("/jasper/report_template.xml");
File parent = new File(reportSource).getParentFile();
//将模板编译成jasper文件(实际项目中,jasper由ireport编译好后放入项目中,以节省编译过程所消耗的时间)
JasperCompileManager.compileReportToFile(reportSource, new File(parent, "compiled_report.jasper").getAbsolutePath());
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}
public List<Object> getList() {
return list;
}
public Map<String, Object> getParams() {
return params;
}
}
4. 然后配置struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- Configuration for the default package. -->
<struts>
<package name="default" extends="struts-default,jasperreports-default">
<!-- 输出不同格式的报表 -->
<action name="PDF" class="com.actions.ReportsAction">
<result name="success" type="jasper">
<!-- 指定jasper文件位置 -->
<param name="location">/jasper/compiled_report.jasper</param>
<!-- 数据源,名称必须和Java代码中名称一致 -->
<param name="dataSource">list</param>
<!-- 参数,名称也必须与Java代码中名称一致 -->
<param name="reportParameters">params</param>
<!-- 输出格式 -->
<param name="format">PDF</param>
</result>
</action>
<action name="HTML" class="com.actions.ReportsAction">
<result name="success" type="jasper">
<param name="location">/jasper/compiled_report.jasper</param>
<param name="dataSource">list</param>
<param name="reportParameters">params</param>
<param name="format">HTML</param>
</result>
</action>
<action name="XML" class="com.actions.ReportsAction">
<result name="success" type="jasper">
<param name="location">/jasper/compiled_report.jasper</param>
<param name="dataSource">list</param>
<param name="reportParameters">params</param>
<param name="format">XML</param>
</result>
</action>
<action name="CSV" class="com.actions.ReportsAction">
<result name="success" type="jasper">
<param name="location">/jasper/compiled_report.jasper</param>
<param name="dataSource">list</param>
<param name="reportParameters">params</param>
<param name="format">CSV</param>
</result>
</action>
<action name="XLS" class="com.actions.ReportsAction">
<result name="success" type="jasper">
<param name="location">/jasper/compiled_report.jasper</param>
<param name="dataSource">list</param>
<param name="reportParameters">params</param>
<param name="format">XLS</param>
</result>
</action>
</package>
<!-- 指定struts的扩展名,如不配置此项,可能图片无法正常显示 -->
<constant name="struts.action.extension" value="action" />
</struts>
- 大小: 38.9 KB
分享到:
相关推荐
1. **添加依赖**:在项目中引入Struts2和JasperReport的相关库,包括struts2-core、jasperreports、ireport-designer等。这些库可以通过Maven或Gradle等构建工具管理。 2. **创建报表模板**:使用IReport工具,设计...
在Struts2中整合jasperReports,可以实现Web应用中的动态报表生成和展示功能。首先,我们需要确保系统环境中已经安装了jasperReports库以及其依赖的iReport设计工具。iReport是用于设计jasperReports报表的图形化...
asm-2.2.jar commons-collections-2.1.1.jar commons-digester-1.7.jar commons-fileupload-1.2.1.jar commons-logging-1.0.4....struts2-jasperreports-plugin-2.1.8.1.jar xwork-core-2.1.6.jar iTextAsianCmaps.jar
5. **Struts2与JasperReports的整合**:在Action中调用JasperReports API生成报表,通过Struts2的结果类型将报表作为响应返回给客户端。 这个Demo项目对于初学者和有经验的开发者来说都是一个宝贵的资源,它提供了...
JasperReport Struts2 web 整合所需完整jar ant-1.7.1.jar antlr-2.7.5.jar asm.jar bsh-2.0b4.jar cglib-2.1.jar commons-beanutils-1.7.0.jar commons-beanutils-1.7.jar commons-collections-2.1.jar commons-...
Struts2的依赖包括核心库、插件(如Struts2-JasperReports-plugin)等,JasperReport的依赖则包括jasperreports、ireport-designer等。在pom.xml文件中添加这些依赖后,Maven会自动下载并管理它们。 接下来,我们要...
首先,我们需要了解Struts2中整合JasperReports的基本步骤: 1. **环境准备**:确保你已经安装了MyEclipse开发环境,并且在项目中引入了Struts2和JasperReports的相关库。这些库通常包括struts2-core、...
将JasperReports与Struts2整合,可以帮助我们在Web应用中轻松创建复杂的报表。 首先,JasperReports是用Java编写的开源报表库,能够设计和生成多种格式的报表,如PDF、HTML、Excel、CSV等。它的强大之处在于能够...
jpa-struts2-碧玉 Struts 2 + JPA + jasperreports插件5.6.1 ...碧玉与Struts的整合2。 用 Techno:JasperReports 5.6,Struts 2,JPA,Springs。 BD:PostGreSQL(基础:struts2,postgres:管理员)。 链接:
- `struts2-jasperreports-plugin.jar`:与JasperReports集成,方便生成报表。 4. **拦截器(Interceptor)**: - `xwork-core.jar`:XWork是Struts2的基础,包含了许多基础的拦截器,如参数校验、类型转换等功能...
在这个整合包里,包含的所有jar文件都是为了确保JasperReports能够与Struts2框架协同工作,提供动态生成报表的能力。 整合这两个框架的关键在于配置和依赖管理。开发者需要在Struts2的配置文件中添加必要的拦截器和...
将这两者整合,可以让Struts2应用程序轻松地实现动态报告的生成与展示。 在整合Struts2和JasperReport时,我们需要一些特定的jar包来确保两者能正确通信和协同工作。这些jar包通常包含了Struts2的核心组件、...
第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...
在将Struts2与JasperReport整合时,首先需要在Struts2项目中添加JasperReport的依赖库,这通常包括jasperreports、jcommon、jfreechart等。接下来,我们需要创建一个Action类,该类将负责处理报表生成的请求,并调用...
JasperReports 与Spring 或者 struts 的整合 含有jar ,主要工具类,报表文件, 整合注意请参考:http://blog.csdn.net/u010947651/article/details/65939310
5. 报表生成:可能需要利用Struts的标签库或者第三方报表工具,如JasperReports,生成统计报表。 为了实现这些功能,开发者需要具备扎实的Java基础,熟悉Struts的Action和Result,理解Spring的IoC和AOP,以及掌握...
Struts2的jar包包括struts2-core、struts2-convention-plugin等,JasperReport的jar包主要有jasperreports、jasperreport-fonts等。 2. **创建报表**:使用JasperReport的报表设计工具iReport或直接编写JRXML文件来...
1. **添加依赖**:在项目的Maven或Gradle配置文件中,我们需要添加JFreeChart、JasperReports以及Struts2的相关依赖。确保这些库版本与你的项目兼容。 2. **创建图表**:使用JFreeChart库,我们可以创建一个Chart...
总之,JasperReport 3.7.1版是一个强大的报表工具,能够很好地与Struts2框架整合,帮助开发者快速实现复杂的报表功能。通过设计灵活的报表模板,结合数据源和报表引擎,可以在各种Web应用中提供高质量的报表服务。在...
总的来说,整合Struts2、Spring和Hibernate可以充分利用它们各自的优点,实现松耦合的、易于维护的Web应用。这个过程中,理解每个框架的核心功能和配置方式至关重要,同时选择正确的Jar包也是成功整合的前提。通过...