求java Web应用jasperexceptionreports必需引用的jar包,较新版本的

java开发常用jar包_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
java开发常用jar包
j​a​v​a​开​发​常​用​j​a​r​包
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢web中应用jasperreport - javaeye - ITeye技术网站
博客分类:
在web中使用jasperreport 要导入的包:
&&&&&&&&&& jasperreports-4.5.0.jar
&&&&&&&&&& js_activation-1.1.jar
&&&&&&&&&& iText-2.1.7.jar
&&&&&&&&&& iTextAsian.jar
&&&&&&&&&& groovy-all-1.7.5.jar
&&&&&&&&&& commons-beanutils-1.8.2.jar
&&&&&&&&&& commons-digester-1.7.jar
&&&&&&&&&& commons-collections-3.2.1.jar
&&&&&&&&&& poi-3.7-.jar
代码:
&& 方法1:
&&&&&&& String filename = ServletActionContext.getServletContext().
&&&&&&&&&&&&&&&&&&&&&&&&&& getRealPath("/ireport/report5_Javabean.jasper");
&&&&&&& Map&String,Object& map = new HashMap&String,Object&();
&&&&&&& map.put("SQLSTR", "select * from syz");
&&&&&&& Collection&Syz& collection = service.findAll();
&&&&&&& JRDataSource datasource = new JRBeanCollectionDataSource(collection);
&&&&&&& ServletOutputStream out = response.getOutputStream();
&&&&&&& //加载jasper文件,生成JasperReport实例 ;
&&&&&&& JasperReport report = (JasperReport) JRLoader.loadObject(filename);
&&&&&&& //填充报表,生成JasperPrint实例
&&&&&&& JasperPrint print = JasperFillManager.fillReport(report,map,datasource);
&&&&&&& //JRXlsExporter是excel导出器,JRPdfExporter 是pdf导出器,其他类型以此类推
&&&&&&& JRAbstractExporter exporter = new JRXlsExporter();
&&&&&&& //导出器设置参数
&&&&&&& exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
&&&&&&& exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);
&&&&&&& //导出
&&&&&&& exporter.exportReport();
&& 方法2:
&&&&&&& byte[] b =
&&&&&&& response.setContentType("application/pdf");
&&&&&&& response.setHeader("Content-Disposition","filename="+
&&&&&&&&&&&&&&&& java.net.URLEncoder.encode("Syz_PDF"+new SimpleDateFormat("yyyyMMddHHmmssSS").format(new Date()), "UTF-8")&
&&& + ".PDF");
&&&& //转换成pdf,如果是html,转换后直接response.sendRedirect()
&&&&&&& b = JasperRunManager.runReportToPdf(filename, map, datasource);
&&&&&&& out.write(b);
&&&&&&& out.flush();
&&&&&&& out.close();
浏览: 65648 次
来自: 商丘
好文章,学习中
我怎么判断onbeforeunload事件执行后弹出 ...
有没哟源代码参考一下,建议上传源代码,谢谢。
楼主,你好!请问一下,你文中提到“参考文献〔3〕中有关于&qu ...
楼主这篇文章果然很精辟,很有用!1613人阅读
一。& 下载ireport( 官方网站:),本人下载ireport3.7.0。
二。& 搭建ireport+jasperreports java开发平台。将ireport3.7.0安装路径下
&&&&&&&& D:\iReport-3.7.0 \ireport\modules\ext下的(jasperreports-3.7.jar,
&&&&&&&& iText-& 2.1.0.jar,iTextAsian.jar,commons-logging-1.1.jar,commons-collections-3.2.1.jar,
&&&&&&&& commons- digester-1.7.jar,poi-3.2-FINAL-.jar,groovy-all-1.5.5.jar)的jar包加入到&
&&&&&&&& java classPath下。其中各jar包的版本以你下载的ireport的\ireport\modules\ext路径下jar为准。
&&&&&&& 各jar包作用如下:
&&&&&&& jasperreports-3.7.jar:该包的作用完成ireport中Preview按扭功能。通过该包可以通过java来ireport生成摸班
&&&&&& (.jrxml或.jasper)填充数据源并导出pdf,excel,html等格式文件。
&&&&&&& iText-2.1.0.jar:生成pdf所依赖的包。
&&&&&&& iTextAsian.jar:支持pdf中文字体依赖的包。
&&&&&&& groovy-all-1.5.5.jar:将.jrxml编译成.jasper.如果你不使用java编译,而使用ireport工具编译则无须导入该 包。
&&&&&&& commons-digester-1.7.jar:解析.jrxml
&&&&&&& poi-3.2-FINAL-.jar:生成excel报表所依赖的jar
三。使用javaBean数据源开发子报表例子如下:
&&&&& 第一步:创建主报表javaBean(货物)如下(set,get方法省列):
&&&& public class DailySales implements Serializable {
&&&& private static final long serialVersionUID = 1L;
&&&& private String productNo;//货物代号
&&&& private String productN//货物名称
&&&&//货物价格
&&&&&//货物唯一标识
&&&& private List&DailyZoom& dailyZ//货物销售地区(子报表)
&&&& public DailySales(String productNo, String productName, int number, int money,
&&&&&List&DailyZoom&&& dailyZooms) {
&&&&&this.productNo = productNo;
&&&& this.productName = productN
&&&& this.number =
&&&& this.money =
&&&& this.dailyZooms = dailyZ
&& 第二步:创建子报表报表javaBean(货物销售地区)如下(set,get方法省列):
& public class DailyZoom implements Serializable {
&&& private S
&&& private BigD
&&& public DailyZoom(String name, BigDecimal amounts) {
&&& this.name =
&&& this.amounts =
注意:如果在报表中需要排序则上述类必须实现Comparable接口,并实现其方法。
& 第三步:创建DailySalesFactory工厂类提供集合数据源如下:
&&&&&& public class DailySalesFactory {
&&&&&& private static DailySales[] data = { new DailySales(& 货号 1&, & 物品1 &, 1, 1000, getDailyZoom()),
&&&&&& new DailySales(& 货号 2&, & 物品 2&, 2, 2000, getDailyZoom()),
&&&&&& new DailySales(& 货号 3&, & 物品 3&, 3, 3000, getDailyZoom()),
&&&&&& new DailySales(& 货号 4&, & 物品 4&, 4, 4000, getDailyZoom()),
&&&&&& new DailySales(& 货号 5&, & 物品 5&, 5, 5000, getDailyZoom()),
&&&&&& new DailySales(& 货号 6&, & 物品 6&, 6, 6000, getDailyZoom()),
&&&&&& new DailySales(& 货号 7&, & 物品 7&, 7, 7000, getDailyZoom()),
&&&&&& new DailySales(& 货号 8&, & 物品 8&, 8, 8000, getDailyZoom()),
&&&&&& new DailySales(& 货号 9&, & 物品 9&, 9, 9000, getDailyZoom()),
&&&&&& new DailySales(& 货号 10&, & 物品 10&, 10, 10000, getDailyZoom()) };
&&&&&& public static Object[] getBeanArray() {
&&&&&& public static Collection getBeanCollection() {
&&&&&&& return Arrays.asList(data);
&&&&& public static List getDailyZoom() {
&&&&& List&DailyZoom& dailyZooms = new ArrayList();
&&&& dailyZooms.add(new DailyZoom(&厦门&, new BigDecimal(123.00)));
&&&& dailyZooms.add(new DailyZoom(&南昌&, new BigDecimal(456.00)));
&&&& return dailyZ
将上述创建的类设置到ireport3.7.0的classPath目录下(工具》选项》classPath),然后配置javaBean数据源如下:
第四步:设定ireport模版如下:
注意:(1)pdf中文设定:首先将iTextAsian.jar設置到classPath下.然後fonts path下勾選iTextAsian.jar路徑和jasperreports-extensions-3.5.3.jar路徑,最後将会显示中文的文本Pdf Font name is now deprecated:STSong-Light,pdfExcoding:UniGB-UCS2-V (Chinese Simplified)(V是从上往下显示,H是从左往右显示)。
&&&&&&&& (2)上下和左右表格要对其,否则生成的excel会很乱。
&&&&&&&&&(3)Parameters,Fields,Variables区别:Parameters是保存从java外部传进来的参数,Fields是Sql或javaBean数据查询返回的字段,Variables是ireport计算或保存值的。
&&&&&&&& (4)分页:强行分页可直接使用Break控件,程序控制分页(让它每显示20条就自动分页)在该print when expression里面写表达式,如下:new Boolean($V{total}.intValue() % 20 == 0)&&& total是数据总量
&&&&&&&& (5)分組統計的報表.每一分組一頁(在ireport中***group foot1勾選start on a new page).
&&& 第五步:使用数据源开发子报表如下:
&&&&&&&&&&&&&&&&
&注意:(1)Subreport Expression中$P{SUBREPORT_DIR} + &javaBeanReport_subreport1.jasper&中为子报表编译后文件的路径,其中$P{SUBREPORT_DIR}&是从java中传进子报表路径。
&&&&&&&&& (2)Data Source Expression:new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{dailyZooms})是使用主报表List集合构造子报表JavaBean数据源。
&第五步:从java中加载ireport做好的模板生成报表如下:
&&&& 将集合转换成javaBeanDataSource:
&&&& JRBeanCollectionDataSource javaBeanDataSource = new JRBeanCollectionDataSource(results);
&&&& 将jrxml编译成jasper:
&&&& JasperReport jasperReport = pileReport(&c:/javaBeanReport.jrxml&);
&&&& 生成JasperPrint对象:
&&&& JasperPrint jasperPrint = JasperFillManager.fillReport
&&&&&(jasperReport,parameters,&&javaBeanDataSource);parameters为要传如的参数Map对象
&&&&& 生成pdf流对象:JasperExportManager.exportReportToPdfStream(jasperPrint, stream);
&&&& 调用ireport中JasperViewer查看pdf
&&&& JasperViewer jrview = new JasperViewer(jasperPrint);
&&&& jrview.setPreferredSize(new Dimension(200, 100));
&&&& jrview.setVisible(true);
&&& 生成excel代码如下:
&&& JRXlsExporter exporter = new JRXlsExporter();
&&& exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);
&&& exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, streamExcel);
&&& exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,& Boolean.FALSE);
&&& exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
&&& exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
&&& exporter.exportReport();
&&& 子报表需注意的java代码:
&& &&Map parameters = new HashMap();
&&& &parameters.put(&SUBREPORT_DIR&, &C:/Documents and Settings/user/桌面/&);
&&&& 如果有子报表必须从java端将SUBREPORT_DIR参数传给ireport
&&& 大量数据内存处理(磁盘建立目录来优化内存):
&&& JRFileVirtualizer对象如JRFileVirtualizer&&virtualizer&=&new&JRFileVirtualizer(2,&&tmp&);
&&& 然后数据填充时传一个参数即可如:
&&& Map&parameters&=&new&HashMap();
&&& parameters.put(JRParameter.REPORT_VIRTUALIZER,&virtualizer);
&&& 第六步:显示效果如下:
&&&&&&&& 四:与与struts2.0整合(导入struts2-jasperreports-plugin-2.0.12.jar包)
&&&&&&& & &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 - 报表参数
& 五:常见的异常:
&& &&& (1)spring+jasperReport生成PDF格式的报表时报
&&& java.lang.NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V异常
&&& 原因:iText.jar文件过旧,将之改为2.1版就没事了。
&&& (2)java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException异常
&&&&&& 原因:没有导入 groovy-all.jar 包,导入 groovy-all.jar 包就可以了。
&&& (3)Excle 应用:
&&&&&& java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFCellStyle
&&&&&& 出现上述错误提示加入 poi-3.2-FINAL-.jar
&&& (4)net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font :
&&&&&& pdfFontName&& : STSong-Light
&&&&&& pdfEncoding&& : UniGB-UCS2-H
&&&&&& isPdfEmbedded : false
&&&&&& 出现上述错误提示加入
&&&&&& iTextAsian.jar
&&& (5)java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
&&&&&& 出现上述错误提示加入 commons-digester-1.7.jar&& iReport/lib& 功能简述:解析 xml 文件;
&&& (6)java.lang.NoClassDefFoundError: org/apache/commons/collections/ArrayStack 出现上述错误提示加入
&&&&&& commons-beanutils-1.7.jar&&& iReport/lib
&&& (7)java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap 出现上述错误提示加入
&&&&&& commons-collections-2.1.jar&& iReport/lib
&&&& 异常:Found two components for namespace
&&&& 解决方法.查看是否在工程目录添加了外部jar [jasperreports-X.X.X.jar],[jasperreports-X.X.X-javaflow.jar]&XXX为版本号&
&&&& 如果有同时添加了这两个jar.移除[jasperreports-3.5.3-javaflow.jar] 则可.
&& 六.ireport其他資料
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场您所在的位置: &
JasperReports+Hibernate轻松解决Web开发中的数据报表问题(1)
JasperReports+Hibernate轻松解决Web开发中的数据报表问题(1)
朱先忠编译
JasperReports是Java Web应用程序开发中一种很有价值而且极为可行的报告方案。借助于XML报告模板,JasperReports简化了报告的生成过程;稍后,这些模板又被JasperReports引擎编译以便进一步应用于报告模块中。这些编译的报告模板可以使用各种数据源数据(包括关系数据库)进行填充。JasperReports能够被集成到Web应用程序中,并且可以通过若干种文件格式(包括PDF和XLS)来创建报告。
【独家特稿】一、在Java应用程序中打印报告
如今,在应用程序开发过程中报告模块经常变得越来越庞大和复杂。当客户们意识到报告提供给他们的优点时,他们往往要求报告模块提供给他们更多的信息。报告模块的开发就是在这样一种“事后回想”的环境下成为应用程序的一个重要的组成部分。另一方面,报告模块往往是在应用程序开发的后期附加上去的而不是在初始开发阶段就被纳入考虑并被实现。
最近,我在开发一些基于Apache POI库的应用程序,其中大量地使用到XLS文件的报告输出。我很快意识到:这些报告模块能够绑定大量极有价值的开发资源以便于将来之用。当客户端要求输出PDF格式时,最初的对于iText API的研究使我偶然发现了JasperReports。最后,我确信,JasperReports一定会极大地影响到我们小组开发报告的方法。
在实现JasperReports之前,创建每一种报告都要求基于Apache POI库开发一个定制报告类。这种方法要耗费大量宝贵的开发时间来创建报告的许多方面,例如单元格特定的格式化,风格及填充方法等。而如今,JasperReports能够帮助我们的开发小组夺回宝贵的开发时间,却仍然能够实现与原先同样的报告,因为这个工具嵌入式地使用了Apache POI库。
引入JasperReports的一个重要优点是,可以通过单个报告模板生产出若干种格式的报告。这意味着,针对于XLS格式输出创建的模板还能够用来生成PDF文件,甚至是CSV,HTML或XML文件。
二、JasperReports如何帮助开发者?
JasperReports使开发者能够快速而容易地创建出以多种格式输出的报告。开发者还能够在设计或运行时刻使用JasperReports引擎编译报告模板,从而允许生成动态的报告格式。而且,开发者还能够把来自于许多种数据源的数据导入到这些报告中。如今,开发者再也不必依赖于Apache POI来创建定制报告类或者使用iText库来格式化报告和确定报告风格,从而使他们专注于报告的数据检索。最终,通过在应用程序开发中使用JasperReports,开发者实现了极有价值的灵活性并节约了开发时间。
JasperReports所使用的XML报告模板提供了布局和描述信息,这些信息用于格式化结果报告以及域、变量和参数等参考内容。借助于某种第三方GUI(例如iReport)再加上极少的开发者协助,即使是非开发人员也能够创建这些模板。这样以来,开发者就不必自己去实现报告布局及描述内容。
总之,JasperReports能够使开发者专注于开发他们的报告模块部分,从而使之不必再编写定制的报告生成代码。在整个报告模块中,开发者的角色被缩减到模板编译、数据源实现和报告创建等几个方面。
三、创建和编译XML报告模板
JasperReports要求使用一种定义布局、描述及数据域的报告设计。可以使用net.sf.jasperreports.engine.design.JasperDesign对象来构建这种设计;这样以来,开发者能够动态地创建报告设计或通过由一个XML报告模板创建一个net.sf.jasperreports.engine.design.JasperDesign实例的方式来创建报告设计。除非一个应用程序特别要求使用一种动态的布局;否则,一般推荐使用一个编译的XML报告模板。这种XML模板通常以一个.jrxml文件扩展名保存并且使用net.sf.jasperreports.engine.JasperCompileManager进行编译。
这个JasperReports XML模板中包括了相应于、、、、的元素以及主要的数据元素。每一个这些元素都有相应的各种子元素。从列表1(请参考源码文件)的sampleReport.jrxml中可以清楚地看出这一点。
另外,从这个sampleReport.jrxml文件中还可以看出,有些元素(例如和)中包含了布局信息,而其它一些元素(例如和)中则包含了描述信息。该XML模板还包含、和元素以用于包括报告中的数据。
其中,元素允许可以把非数据源信息(例如一个动态标题)输入到一个报告中;元素是唯一的把报告域映射到数据源域的方法,而是运行时刻生成以用于报告中的值。关于JasperReports XML报告模板的完整的文档类型定义(DTD)可以在《JasperReports最终指南》中找到。
注意,我们可以使用JasperReports Ant任务(作为一个Ant构建的部分)在运行时刻或构建时刻编译XML模板。
在运行时刻编译报告需要把该报告加载到一个JasperDesign对象并且使用创建的实例作为到pileReport(JasperDesign design)方法的参数―这个方法返回一个JasperReport实例。作为选择,XML模板还能够被传递给pileToFileReport(String sourceFileName)方法,这个方法能够创建一个在整个程序中使用的编译的报告文件(.jasper)。
使用JasperReports Ant任务在构建时刻编译报告要求把相应的任务定义添加到build.xml文件,还要添加一个相应的使用这个任务的目标(见源码文件中的列表2)。使用该Ant任务能够在destdir任务中创建一个编译的(.jasper)文件并且通过把true值传递给目标的keepjava属性以便保存Java源文件。本文相应的源码中包括了一个说明如何使用Ant任务的更为详细的示例。
四、使用数据源填充JasperReports
大多数报告都使用数据库作为数据源,但是JasperReports能够使用任何可用的数据源。这些数据源被作为参数传递给一个net.sf.jasperreports.engine.JasperFillManagerfillReportXXX()方法。这些方法实现了对两种类型的数据源的支持―net.sf.jasperreports.engine.JRDataSource和java.sql.Connection。注意,本文源码文件中包含了两种示例:扩展JRDataSource的静态数据源示例和实现JDBC连接的动态数据源的示例。
其中,StaticDataSource类的实例必须要实现net.sf.jasperreports.engine.JRDataSource接口,从而支持它填充报告数据―这是通过调用JasperFillManager.fillReport(JaperReportreport,Map parameters,JRDataSource dataSource)方法来实现的。StaticDataSource中另外两个需要实现的方法getFieldValue(JRField jrField)和next()(它们都由JRDataSource接口提供)负责把数据由数据源传递到JasperReport。StaticDataSource所使用的数据源是一个静态二维数组(每一个数组项相应于一个玩滚球的人的名字及其在三场游戏中的得分,见源文件中的列表3)。当处理包含此数据源的fillReport()方法并且在报告中遇到一个详细节(detail section,报告结构的一部分)时,要调用next()方法。如果在数据数组中还存在另一个元素,则在StaticDataSource中的这个方法实现(见列表4)将返回true;而如果不再有其它数据,则返回false。如果这个方法返回true,那么在详细节中遇到的域元素将激活对StaticDataSource中的getFieldValue(JRField jrField)方法的调用。在StaticDataSource中的这个方法(见列表5)将返回被映射的数据域名相应的值(相应于数据数组的当前索引)。当到达详细节的结尾部分时,再次调用next()方法;这一过程将重复执行,直到next()方法返回false为止。
JDBCDataSourceExample(见列表6)例子中实现了一个fillReport()方法,该方法接受一个java.sql.Connection参数。通过把一个元素添加到XML报告模板(jdbcSampleReport.jrxml)中,这个fillReport()方法支持从一个关系数据库中取得数据。这个元素能够返回数据域,以便应用于报告数据映射中―在这种情况下,查询仅是简单地返回sample_data表格中的所有记录。可以在报告模板中使用一个java.sql.ResultSet来代替对元素的实现,从而允许实现动态的查询。
关于&&&&&&的更多文章
HTML 5是近十年来Web开发标准最巨大的飞跃。和以前的版本不同,H
网友评论TOP5
构建应用程序最关键的目标之一是确保所有进入数据库的数据都要符合你的业务规则,数据校验是应用程序的关键部分,确保你的数据满足业务分析师制定的需求。本文将给大家介绍如何使用检查约束验证SQL Server中的数据。
工具书对于学习者而言是相当重要的。一本错误观念的工
很多时候,在学业上,在工作上,甚至在感情问题上,这
Spring 3.0是Spring在积蓄了3年之久后,隆重推出的一
本书是一本真正意义上的网络系统设计图书,从网络系统设计角度全面介绍了整个网络系统设计的思路和方法,而不是像传统网络集成类
51CTO旗下网站}

我要回帖

更多关于 jasper 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信