`
liyanboss
  • 浏览: 140279 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

在struts2中使用JasperReports

阅读更多
最近工作中要求可以把网页信息以报表的形式输出,虽然以前有接触过JasperReports,但是还不是很了解,自己就详细的看了一下JasperReports的文档,用struts2做了一个简单的例子,share 出来供大家参考,同时也把自己学习中遇到的问题记载下来,以备查。

1、在struts2中,默认的struts-default.xml中,并没有包含jasper的result-type,它是插件的形式使用的。把struts2的解压包的lib里找到struts2-jasperreports-plugin-2.0.11.jar,拷贝到你的项目的classpath里,同时在struts.xml里面增加一个jasper的result-type。
<result-types>
	<result-type name="jasper" class="org.apache.struts2.views.jasperreports.JasperReportsResult"/>
</result-types>
<action name="ListAllCustomersForJasperXLS" class="report.ListAllCustomersAction">
	<result name="success" type="jasper">
		<param name="location">/WEB-INF/report/ListAllCustomers.jasper</param>
		<param name="dataSource">customers</param>
		<param name="format">XLS</param>
	</result>
</action>

2、报表JasperReports依赖很多的jar包,可以到JasperReports Requirements
http://www.jasperforge.org/jaspersoft/opensource/business_intelligence/jasperreports/requirements.html)找到。

3、要使用JasperReports提供的antTask把编辑好的jrxml编译成jasper的。
<target name="-compile.report">
	<taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask">
		<classpath refid="master-classpath" />
	</taskdef>
	<jrc destdir="${webapp.web.dir}/WEB-INF/report">
		<src>
			<fileset dir="${webapp.web.dir}/WEB-INF/report">
				<include name="**/*.jrxml" />
			</fileset>
		</src>
		<classpath refid="master-classpath" />
	</jrc>
</target>

4、中文问题的解决,需要下载iTextAsian.jar,支持亚洲文字,同时修改jrxml文件中的
fontName="宋体"
pdfFontName="STSong-Light"
isPdfEmbedded="true"


               
其实,需求是要能够根据数据生成图表(chart),开源的jfreechart应该很好用,接下来要学习一下jfreechart,生成柱状图表。
另外,在编辑JasperReports的jrxml文件时,一个开源的可视化的组件iReport也很好用,我还没有详细研究,大家一起来学习呀!!!!!!!!!!


下面是除了依赖的jar以外的所有源代码,share出来,欢迎下载。
  • JasperReportsDemo.rar (13.8 KB)
  • 描述: 除了依赖的jar以外的所有文件。jar文件请按图片上的名称自行下载,放入相应的目录,即可。
  • 下载次数: 531
分享到:
评论
5 楼 tinguo002 2010-07-08  
哦  上面的那个问题解决了咯。
我在WEB-INF 下新建了一个  lib的文件夹 然后把 所用到的lib都放到了我建好的lib底下它就可以启动了咯 ,  不知道这是为什么呢。。。。。

然后,现在有一个问题 ,就是  action类中  import 后面的东东都说引用错误咯。。。。
郁闷。。。。55
4 楼 tinguo002 2010-07-08  
555555555  老大  
我怎么一开始运行dome的时候就会出现 
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher
不懂怎么搞呢

跟据你上面的  lib图  把上面的都加满了咯。
3 楼 10916621 2009-08-06  
哥们,我现在有大麻烦了,请解决,struts2和jasrreport结合,我想使用两个数据源,

比如,在一张报表的上面,也就是头部分显示,某个人姓名,年龄,职业,等等信息,

在下面的显示这个人的缴费记录,你很多条数据,简单的来说是一个主从数据,但使用struts2我不知道怎么建立这两个数据,第一个是一个对象,第二个是个集合,还请解答
2 楼 liyanboss 2008-11-25  
liukidd 写道

如果数据量大,这种方法可行吗?

你可以mock大量的数据,做个性能测试,如果可以接受,那就用了
1 楼 liukidd 2008-05-04  
如果数据量大,这种方法可行吗?

相关推荐

Global site tag (gtag.js) - Google Analytics