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></blockquote>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</blockquote>
- simpleReport指定邏輯視圖的名字
- simpleReport.(class)指定視圖的實現類
- simpleReport.url指定模板文件位置
- simpleReport.reportDataKey指定數據在Model中的Key
</ul>4、實現一個@Controller方法
<p>@RequestMapping(value=”report”)</p>public String report(Map<String, Object> model){model.put(“reportDataKey”, SimpleFactory.test());return “simpleReport”;}</blockquote>SimpleFactory.test() 是我在設計模板時使用的產生數據的工廠方法。可以看到我們返回的邏輯視圖是simpleReport且Model中的Key=reportDataKey
5、測試
訪問http://localhost:8080/mvcDemo/report 就可以看到我們剛才產生的報表了
報表的內容很簡單,就不截圖了。
原文來自:Nix.Huang的博客