首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

Spring MVC+Jasper Report 及生成PDF的中文有关问题

2012-07-31 
Spring MVC+Jasper Report 及生成PDF的中文问题先说两句报表框架的选择,JasperReport和BIRT都是不错的JAVA

Spring MVC+Jasper Report 及生成PDF的中文问题

先说两句报表框架的选择,JasperReport和BIRT都是不错的JAVA报表工具,不过BIRT和Spring的整合比较麻烦,Spring官网论坛里有篇不错的文章,不过我觉得还是挺麻烦的。而Jasper简单一些。

?

SpringMVC和JasperReport的整合方法有很多,这里介绍一下Spring文档里的官方方法,这个方法比较简单,编写的代码很少,缺点是不自动,每加一个报表都需要修改配置文件,重启服务。对于专门做报表的WEB服务来说就不合适了。

?

1、在配置文件中增加:

?

?

注意Resolver的顺序。

?

2、在classpath里面增加views.properties。我的文件放在src/main/resources下面。

views的内容是:

?

import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller@RequestMapping("/report.html")public class ReportCtrl {    private static final Logger logger = LoggerFactory.getLogger(ReportCtrl.class);    @RequestMapping()    public ModelAndView showReport(ModelMap model, HttpServletRequest request) {        logger.info("ReportCtrl-showReport start!");        DataSource map = new DataSource();        map.setPlanno("APP1-1039-0990");        map.setPlanname("上海出租车");        List<DataSource> beanData = new ArrayList<DataSource>();        beanData.add(map);        model.addAttribute("datasource", beanData); //datasource和views.properties配置的相同        logger.info("ReportCtrl-showReport end!");        return new ModelAndView("simpleReport", model); //simpleReport和views.properties配置的相同    }    //bean定义    public class DataSource {        private String planno = "";        private String planname = "";        public String getPlanno() {            return planno;        }        public void setPlanno(String planno) {            this.planno = planno;        }        public String getPlanname() {            return planname;        }        public void setPlanname(String planname) {            this.planname = planname;        }    }}
?

?

运行就可以显示报表了。

热点排行