首先,先说一下需求,项目需要打印一些报表,也没多想,直接就在jsp页面设置了样式,前台直接调用window.print()写了打印功能,但是例会的时候,领导提出需要一些比较麻烦的打印,自己写肯定费时间,就想着去找找web打印控件,一搜都是一些收费的,免费版基本都有水印,客户肯定接受不了水印的。买的话,项目本身就没多少钱,不划算。就找到了jasperreports+Ireport好像还可以。就找了找资料,准备着手集成到框架里面了。
下面是参考案例:
https://blog.csdn.net/xht555/article/details/43409637
主要是按照这个集成的,但是他的jar包跟我的jar包不太一样,导致我一直报错,后来又参考了下面这个
https://blog.csdn.net/yan_tu/article/details/71534176
和http://maven.outofmemory.cn/net.sf.jasperreports/jasperreports/5.6.0/
1、导入jar包:
<!-- iReport JasperReports -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.6.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<!-- end -->
看了上面两个案例后,可能会觉得我怎么导入那么多的包?其中springMVC4.0最低支持的
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.1.4</version>
</dependency>
2.6版本以上的,但是jasper最高只支持2.1.4版本没办法,只能用了2.1.4,又加了一个
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
这样就jar包基本没什么问题了。
2、SpringMVC配置
配置请参考: https://blog.csdn.net/xht555/article/details/43409637 案例。
我主要是修改了在我项目中的配置路径。这部分就不赘述了。
3、关于Ireport制作报表的问题
遇到的第一个问题就是没有Oracle驱动,这个很简单,把Oracle对应的驱动包放入D:..\IReport\iReport-5.6.0\ireport\libs目录下,然后Ireport工具》选项》classpath添加jar就可以了。
配置好数据源后,然后就是我遇到的oracle数据库查出的字段默认都是大写的,但是我后台的javaBean都是小写的,导致一直报JavaBean里面找不到参数。
作为一个Java开发者,这个问题,我真的不该没意识到的,后来我在Ireport里面把字段改成了小写的(改JavaBean需要动的地方太多),这就没问题了。
这算不得一个教程吧,我也是个新手,算是记录一下自己整合的过程和参考,避免其他新人犯我一样的错误。谨记!