Spring MVC中使用JasperReport

Nix.Huang的部落格發表於2014-10-12

JasperReport Report是一款強大的免費報表引擎,Spring MVC提供了對其的支援,由於JasperReport可以使用多種資料員,本文以javabean為資料來源演示。
下載地址: spring-mvc-demo_v4.zip  提取碼: SLeLPNcO
注意,本教程在寫作的過程中maven 下載itext-2.1.7.js2.jar時總是下載不成功,可以翻牆手工下載,然後放在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.jasper
simpleReport.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 就可以看到我們剛才產生的報表了

報表的內容很簡單,就不截圖了。

相關文章