Spring MVC中使用JasperReport
JasperReport Report是一款强大的免费报表引擎,Spring MVC提供了对其的支持,由于JasperReport可以使用多种数据员,本文以javabean为数据源演示。
下载地址: spring-mvc-demo_v4.zip 提取码: SLeLPNcO
注意,本教程在写作的过程中maven 下载itext-2.1.7.js2.jar时总是下载不成功,可以KX上网手工下载,然后放在maven对应的目录下,maven的本地仓库目录默认为C:\Users\用户名\.m2\repository目录。
实现步骤
1、使用ireport设计报表模板(略)
本文生成的模板文件为Simple.jasper, 放在src/main/resources/reports/下,编译后会出现在WEB-INF/classes/reports/目录下。
2、修改pom.xml导入需要的依赖。
本系列示例开始使用的是spring 3.2.3 release 版本,为了使用Jasperreport, 升级为了spring 4.1.0 release版本,因为Jasperreport的package改变了,有Jasperreport改成了 net.sf.jasperreports。本文使用的依赖为
<dependency>
<groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.1.0.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><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.3.6</version></dependency>
3、修改views.properties
views.properties是ResourceBundleViewResolver 使用的一个配置文件,具体内容可以参考我的上一篇博客
simpleReport.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView
simpleReport.url=/WEB-INF/classes/reports/Simple.jaspersimpleReport.reportDataKey=reportDataKey
- simpleReport指定逻辑视图的名字
- simpleReport.(class)指定视图的实现类
- simpleReport.url指定模板文件位置
- simpleReport.reportDataKey指定数据在Model中的Key
4、实现一个@Controller方法
@RequestMapping(value=”report”)
public String report(Map<String, Object> model){model.put(“reportDataKey”, SimpleFactory.test());return “simpleReport”;}
SimpleFactory.test() 是我在设计模板时使用的产生数据的工厂方法。可以看到我们返回的逻辑视图是simpleReport且Model中的Key=reportDataKey
5、测试
访问http://localhost:8080/mvcDemo/report 就可以看到我们刚才产生的报表了
报表的内容很简单,就不截图了。
原文来自:Nix.Huang的博客