Spring MVC中使用JasperReport

jopen 10年前發布 | 69K 次閱讀 Spring MVC Web框架

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.jasper

simpleReport.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的博客

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!