SpringMVC整合jasperreport做报表
2014-03-20 13:57
176 查看
SpringMVC整合jasperreport做报表
1,在springMVC环境搭建的基础上,配置视图解析器
报表的打印在这里是使用的ResourceBundleViewResolver视图解析器,需要注意的是,如果使用了多个视图解析器,那么,要使用order来确认各个视图解析器的顺序,要不然不会逐个解析器的执行,一般把将InternalResourceViewResolver放最后,也就是order的值最大
<!-- jsp页面视图处理 -->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="2"></property>
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>
<!-- PDF报表打印视图处理 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="order" value="0"></property>
<property name="basename" value="views"></property>
</bean>
<!-- 返回JSON格式的数据视图解析 @author 谢德文 -->
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1"></property>
<property name="mediaTypes">
<map>
<!-- 告诉视图解析器,返回的类型为json格式 -->
<entry key="json" value="application/json" />
</map>
</property>
<property name="defaultViews">
<list>
<!-- ModelAndView里的数据变成JSON -->
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
二,在src目录下建立一个views.properties
#-------申通详情单打印
STO.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView //固定,每个class都使用这个
STO.url=/WEB-INF/printPDF/express_cn/STO.jasper //这里指定报表的位置
三,将jasper文件拷贝到项目目录下(自定义位置)
四,控制器
@RequestMapping("/previewPDF/*")
@Controller
public class PrintPDF {
@Resource
private OrderDao orderDao;
@RequestMapping("printExpress.do")
public ModelAndView printExpress(ModelMap model){
TbShgwOrder orderView = orderDao.findById(TbShgwOrder.class, Long.parseLong(221+""));
//如果直接传对象bean不行,需要使用list传值
List<TbShgwOrder> orders = new ArrayList<TbShgwOrder>();
orders.add(orderView);
model.put("orderViews", orders); //将list放到model中
return new ModelAndView("STO",model); //这里的“STO”就是views.properties里面的key
}
}
1,在springMVC环境搭建的基础上,配置视图解析器
报表的打印在这里是使用的ResourceBundleViewResolver视图解析器,需要注意的是,如果使用了多个视图解析器,那么,要使用order来确认各个视图解析器的顺序,要不然不会逐个解析器的执行,一般把将InternalResourceViewResolver放最后,也就是order的值最大
<!-- jsp页面视图处理 -->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="2"></property>
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>
<!-- PDF报表打印视图处理 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="order" value="0"></property>
<property name="basename" value="views"></property>
</bean>
<!-- 返回JSON格式的数据视图解析 @author 谢德文 -->
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1"></property>
<property name="mediaTypes">
<map>
<!-- 告诉视图解析器,返回的类型为json格式 -->
<entry key="json" value="application/json" />
</map>
</property>
<property name="defaultViews">
<list>
<!-- ModelAndView里的数据变成JSON -->
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
二,在src目录下建立一个views.properties
#-------申通详情单打印
STO.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView //固定,每个class都使用这个
STO.url=/WEB-INF/printPDF/express_cn/STO.jasper //这里指定报表的位置
三,将jasper文件拷贝到项目目录下(自定义位置)
四,控制器
@RequestMapping("/previewPDF/*")
@Controller
public class PrintPDF {
@Resource
private OrderDao orderDao;
@RequestMapping("printExpress.do")
public ModelAndView printExpress(ModelMap model){
TbShgwOrder orderView = orderDao.findById(TbShgwOrder.class, Long.parseLong(221+""));
//如果直接传对象bean不行,需要使用list传值
List<TbShgwOrder> orders = new ArrayList<TbShgwOrder>();
orders.add(orderView);
model.put("orderViews", orders); //将list放到model中
return new ModelAndView("STO",model); //这里的“STO”就是views.properties里面的key
}
}
相关文章推荐
- ASP.NET中常用方法
- .net4.0下 解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误
- Spring3系列12- Spring AOP AspectJ
- Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?
- Asp.net操作Excel(终极方法NPOI)(转)
- asp.net控件拖不动。控件错误
- Asp.Net异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法
- ASP控件解释
- ASP.NET 取消和禁用缓存
- Asp空间属性
- asp+mysql+utf8 网页出现乱码的问题
- ASP.NET通过递归添加树(Treeview)
- Asp.net通过MySql.Data.dll操作mysql数据库(三)
- Asp.net通过MySql.Data.dll操作mysql数据库(二)
- 图片asp木马的制作方法[转]
- 打造不死的asp木马
- 追溯ASP.NET发展史
- asp.net动态设置masterpage实现换肤
- 一步步学习SPD2010--第十四章节--在Web页面使用控件(6)--测试ASP.NET表单
- 一步步学习SPD2010--第十四章节--在Web页面使用控件(4)--使用ASP.NET验证控件