说下SPRING MVC与jasperreports整合

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

<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=".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,大家都会设置
[code]
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
[/code]
这个配置会抢你的映射
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结合还是很简单,未深入研究,求赐教。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值