Spring+Spring MVC 整合JasperReports

来源:互联网 发布:ecshop 水果商城源码 编辑:程序博客网 时间:2024/05/08 00:36

这是我第一次写博客,有什么地方写的不好还请大家多多指教。

这段是扯淡的,可以跳过。我先说我为什么会用到JasperReports吧。201212月底我从杭州跳槽到镇江一家小公司,当时公司接了一个项目要做,具体什么项目我就不说了。项目系统开发主要是我带领两个实习生,刚过一个月就剩我自己了。我到公司的时候系统架构已经找人搭建好了,使用的是SpringSpring MVCiBATISSpring MVCiBATIS都没用过,初来乍到也不好提什么意见。还好以前学过strutsMVC能很快理解,而iBATISsql开发的要求比较高,还好我的sql编写能力还不赖,很快就开始工作了。这个项目主要有我负责,后来的一些技术选定就有我做主了。报表模块是很多系统都会用到的,我到网上看了一下就选择了JasperReports

Spring MVC 整合JasperReports我个人觉得最重要的就是如何写配置。要整合JasperReports首先要加入相关的jar(不细说了,少什么类,加对应的包就行了),然后修改配置,在Spring MVC的配置文件中加入以下内容:

<bean id="jasperReportsViewResolver"  

          class="org.springframework.web.servlet.view.jasperreports.JasperReportsViewResolver">  

        <property name="order" value="0"></property>  

        <property name="viewClass"  

                      value="org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView"/>  

        <property name="prefix" value="/WEB-INF/jasper/"/>  

        <property name="suffix" value=".jasper"/>

        <property name="viewNames" value="rpt_*">

        </property>

         

        <property name="exporterParameters">

          <map>

            <entry key="net.sf.jasperreports.engine.export.JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS">

              <value type="java.lang.Boolean">true</value>

            </entry>

            <entry key="net.sf.jasperreports.engine.export.JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS">

              <value type="java.lang.Boolean">true</value>

            </entry>

            <entry key="net.sf.jasperreports.engine.export.JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND">

              <value type="java.lang.Boolean">false</value>

            </entry>

          </map>

        </property>

     

    </bean>

jasperReportsViewResolver配置的是报表所对应的视图解析器。viewClass是视图所对应的类不需要修改。order是视图解析器执行的顺序,要在jsp解析之前,否会出错,jsp解析器会解析所有的视图。prefix报表模板所在的路径。suffix报表模板的扩展名。viewNames视图的名称,”rpt_*”可以修改,代表报表视图解析器,解析以”rpt_”开头的所有视图。exporterParameters对应的是视图解析器解析视图是所用的的参数,目前配置的是产生xls文件所用到的一些参数。其他可以参考api文档。

Controller的RequestMapping如果对应的是报表的话应该这样写

ModelAndView mav = new ModelAndView();

……

mav.setViewName("rpt_memberRetrievalXML");

return mav;

“rpt_memberRetrievalXML”对应的就是报表模板的名字,格式要符合配置中”rpt_*”的格式。

整合的话基本上就这样,希望对用到的朋友有所帮助。从我使用到现在已经有四个多月了,有些措辞不恰当或者写的不好的地方还请大家理解,有疑问的话可以留言,我和大家一块去解决。

原创粉丝点击