工程用的Maven管理
jar包配置,需要添加:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-jasperreports-plugin</artifactId>
<version>2.3.8</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.7.1</version>
<exclusions>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itextasian</artifactId>
<version>1.0</version>
</dependency>
说明下struts2-jasperreports-plugin这是struts2官方的插件;jasperreports的核心,最好使用4.7.1,高版本整合的时候有包的问题,所以没用了,之所以排除掉那二个包,是因为和spring的包有冲突;itextasian这个包是为了解决中文问题。
struts2配置文件:
<package name="action" extends="struts-default,jasperreports-default" namespace="/"> // 这行需要加上jasperreports-default
<action name="printEE" class="printBom" method="printEE" >
<result name="success" type="jasper"> //这里type要写成jasper
<param name="location">
jasper/bom.jasper //报表编译后的文件
</param>
<param name="dataSource">bomlist</param> //这是action输出 的一个bean的list
<param name="reportParameters">param</param> //parameter 就是一个map,传参数到报表
<param name="format">PDF</param> //报表输出 的格式,默认pdf,可选xls,pdf,html等等
<param name="documentName">BOM</param>
</result>
<result name="error">error.jsp</result>
</action>
这样基本上完成了一个整合,后面主要就是使用ireport 进行报表设计的问题了。
常见问题有:
1、中文显示
2、中文乱换行
3、一行因换行被分页,如何控制不分页
4、子报表的使用