您的位置:首页 > 编程语言 > ASP

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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: