读书人

说上SPRING MVC与jasperreports整合

发布时间: 2012-08-24 10:00:21 作者: rapoo

说下SPRING MVC与jasperreports整合
研究了下新版本的jasperreports,有些小问题,提供给大家,少走弯路
单独抽个jasper-view.xml,配置如下

<bean id="jasperReportsViewResolver"          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=".jrxml"/>        <property name="viewNames" value="rpt*"/>        <property name="jdbcDataSource" ref="dataSource"/>        <property name="exporterParameters">            <map>                <!-- Force bei allen UTF-8 -->                <entry                        key="net.sf.jasperreports.engine.JRExporterParameter.CHARACTER_ENCODING">                    <value>utf-8</value>                </entry>                <!-- keine Images als Platzhalter in HTML-Seiten , vermeidet nullpx-Problem -->                <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN">                    <value type="java.lang.Boolean">false</value>                </entry>                <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI">                    <value type="java.lang.String">/html/image.jsp?image=</value>                </entry>                <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_DIR_NAME">                    <value type="java.lang.String">D:\\work\\***\\web\\tmp</value>                </entry>                <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR">                    <value type="java.lang.String">true</value>                </entry>            </map>        </property>    </bean>

配置几点说明下:
1、property order要设置下0,因为MVC,大家都会设置
<bean id="viewResolver" value="/WEB-INF/jsp/"></property>        <property name="suffix" value=".jsp"></property>    </bean>

这个配置会抢你的映射
2、写一个jsp文件,来读生成的报表图片,我的配置/html/image.jsp,网上抄一段
<%@ page import="java.io.*" %><%    String imagePath = System.getProperty("***") + "/web/tmp";    String name = request.getParameter("image");    imagePath += "/" + name;    response.reset();    OutputStream output = response.getOutputStream();// 得到输出流    response.setContentType("image/png");//        ServletContext context = getServletContext();// 得到背景对象    File f = new File(imagePath);    InputStream imageIn = new FileInputStream(f);    BufferedInputStream bis = new BufferedInputStream(imageIn);// 输入缓冲流    BufferedOutputStream bos = new BufferedOutputStream(output);// 输出缓冲流    byte data[] = new byte[4096];// 缓冲字节数    int size = 0;    size = bis.read(data);    while (size != -1) {        bos.write(data, 0, size);        size = bis.read(data);    }    bis.close();    bos.flush();// 清空输出缓冲流    bos.close();    output.close();%>

3、设置图片生成地址,我这是tmp目录,需要绝对路径,那位能告诉怎么设置相对路径

配置就这些,Controller返回时,直接返回报表名称就可以了,现在spring直接编译jrxml,
网上一堆问报表图片生成问题,看来一直是老问题,以前用的很老的版本就是这样解决的。新版本与spring结合还是很简单,未深入研究,求赐教。 1 楼 macrotea 2011-09-25 楼主对spring mvc 了解吗
有资料吗
能分享下吗

读书人网 >ASP

热点推荐