`
汤姆猫
  • 浏览: 1250 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2-jasperreports整合说明

阅读更多
最近使用了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
分享到:
评论

相关推荐

    Struts2_JasperReport整合的例子

    1. **添加依赖**:在项目中引入Struts2和JasperReport的相关库,包括struts2-core、jasperreports、ireport-designer等。这些库可以通过Maven或Gradle等构建工具管理。 2. **创建报表模板**:使用IReport工具,设计...

    Struts2整合jasperReports报表

    在Struts2中整合jasperReports,可以实现Web应用中的动态报表生成和展示功能。首先,我们需要确保系统环境中已经安装了jasperReports库以及其依赖的iReport设计工具。iReport是用于设计jasperReports报表的图形化...

    JasperReport整合Struts2所用jar包 iTextAsian.jar sqljdbc4.jar

    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

    Struts2 + JasperReports4 + DB2 Demo

    5. **Struts2与JasperReports的整合**:在Action中调用JasperReports API生成报表,通过Struts2的结果类型将报表作为响应返回给客户端。 这个Demo项目对于初学者和有经验的开发者来说都是一个宝贵的资源,它提供了...

    JasperReport Struts2 整合所需完整jar

    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整合jasperreport

    Struts2的依赖包括核心库、插件(如Struts2-JasperReports-plugin)等,JasperReport的依赖则包括jasperreports、ireport-designer等。在pom.xml文件中添加这些依赖后,Maven会自动下载并管理它们。 接下来,我们要...

    在Struts2中使用JasperReports生成报表

    首先,我们需要了解Struts2中整合JasperReports的基本步骤: 1. **环境准备**:确保你已经安装了MyEclipse开发环境,并且在项目中引入了Struts2和JasperReports的相关库。这些库通常包括struts2-core、...

    在struts2中使用JasperReports

    将JasperReports与Struts2整合,可以帮助我们在Web应用中轻松创建复杂的报表。 首先,JasperReports是用Java编写的开源报表库,能够设计和生成多种格式的报表,如PDF、HTML、Excel、CSV等。它的强大之处在于能够...

    jpa-struts2-jasper:Struts 2 + JPA +插件jasperreports 5.6.1

    jpa-struts2-碧玉 Struts 2 + JPA + jasperreports插件5.6.1 ...碧玉与Struts的整合2。 用 Techno:JasperReports 5.6,Struts 2,JPA,Springs。 BD:PostGreSQL(基础:struts2,postgres:管理员)。 链接:

    Struts2基础Jar包13个

    - `struts2-jasperreports-plugin.jar`:与JasperReports集成,方便生成报表。 4. **拦截器(Interceptor)**: - `xwork-core.jar`:XWork是Struts2的基础,包含了许多基础的拦截器,如参数校验、类型转换等功能...

    jasperreports-5.5.1_struts2.3整合用到的jar包

    在这个整合包里,包含的所有jar文件都是为了确保JasperReports能够与Struts2框架协同工作,提供动态生成报表的能力。 整合这两个框架的关键在于配置和依赖管理。开发者需要在Struts2的配置文件中添加必要的拦截器和...

    Struts2整合JasperReport所需要的jar包

    将这两者整合,可以让Struts2应用程序轻松地实现动态报告的生成与展示。 在整合Struts2和JasperReport时,我们需要一些特定的jar包来确保两者能正确通信和协同工作。这些jar包通常包含了Struts2的核心组件、...

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...

    Struts2 + JasperReport应用一:导PDF,Excel,HTML显示

    在将Struts2与JasperReport整合时,首先需要在Struts2项目中添加JasperReport的依赖库,这通常包括jasperreports、jcommon、jfreechart等。接下来,我们需要创建一个Action类,该类将负责处理报表生成的请求,并调用...

    JasperReports 与Spring 或者 struts 的整合 含有jar ,主要工具类,报表文件

    JasperReports 与Spring 或者 struts 的整合 含有jar ,主要工具类,报表文件, 整合注意请参考:http://blog.csdn.net/u010947651/article/details/65939310

    Struts-Spring-Hibernate三大框架整合项目——人力资源管理系统

    5. 报表生成:可能需要利用Struts的标签库或者第三方报表工具,如JasperReports,生成统计报表。 为了实现这些功能,开发者需要具备扎实的Java基础,熟悉Struts的Action和Result,理解Spring的IoC和AOP,以及掌握...

    Struts2与jasperReport简单示例

    Struts2的jar包包括struts2-core、struts2-convention-plugin等,JasperReport的jar包主要有jasperreports、jasperreport-fonts等。 2. **创建报表**:使用JasperReport的报表设计工具iReport或直接编写JRXML文件来...

    在struts2中使用JFreeChart

    1. **添加依赖**:在项目的Maven或Gradle配置文件中,我们需要添加JFreeChart、JasperReports以及Struts2的相关依赖。确保这些库版本与你的项目兼容。 2. **创建图表**:使用JFreeChart库,我们可以创建一个Chart...

    jasperreports-3.7.1 jar包

    总之,JasperReport 3.7.1版是一个强大的报表工具,能够很好地与Struts2框架整合,帮助开发者快速实现复杂的报表功能。通过设计灵活的报表模板,结合数据源和报表引擎,可以在各种Web应用中提供高质量的报表服务。在...

    struts2+spring+hibernate整合时所需的jar包

    总的来说,整合Struts2、Spring和Hibernate可以充分利用它们各自的优点,实现松耦合的、易于维护的Web应用。这个过程中,理解每个框架的核心功能和配置方式至关重要,同时选择正确的Jar包也是成功整合的前提。通过...

Global site tag (gtag.js) - Google Analytics