本文主要是介绍Jasperreports+jaspersoft studio学习教程(五)- JavaBean作为数据源填充数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在实际项目中,一般使用java对象作为数据源的方式更多,这种方式会更加灵活多变。对于mvc结构更为契合。上面介绍了用JDBC数据源时,用到了Fields对象。本篇主要是使用Fileds对象来匹配JavaBean对象。
5.1 在项目中新建user对象(添加get,set方法),结构如下:
5.2 新建报表模板DemoReport4.jrxml
5.2.1按照user对象新建Fileds(注意数据类型一致)
5.2.2 去掉多余的band,只保留Title,Detail,PageFooter。去掉band的前后距,步骤:模板(DemoReport4)右键 -> Show Propertes -> Page Format -> Edit Page Format
5.2.3 将Filed拖动到 Detail 1 Band。并设计模板,保持Filed的高与Detail Band的高一致
设置页码,打开组件面板 在Composite Elements栏找到Page Number 拖入到 Page Footer 中
保存,并将jrxml文件放入到项目webroot下新建的jrxml目录中。
5.3 编写servlet注入JavaBean数据源。新建JasperServlet3
5.3.1 JasperServlet3的doget如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Map<String,Object> parameters = new HashMap<String,Object>(16);String jrxmlPath = request.getServletContext().getRealPath("/")+"/jrxml/DemoReport4.jrxml";//由jrxml文件编译后生产jasper文件的路径String jasperPath = request.getServletContext().getRealPath("/")+"/jasper/DemoReport4.jasper";FileInputStream isRef = null;ServletOutputStream sosRef = null;try {//编译jrxml生产jasper文件JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath);isRef = new FileInputStream(new File(jasperPath));sosRef = response.getOutputStream();//组装list数据源List<User> list = new ArrayList<User>();for(int i = 1; i <= 100; i++) {User user = new User(i,"小明"+i,18,i);list.add(user);}//new JRBeanCollectionDataSource(list) 以javaBean为数据源注入报表数据JasperRunManager.runReportToPdfStream(isRef, sosRef, parameters, new JRBeanCollectionDataSource(list));response.setContentType("application/pdf");} catch (JRException e) {e.printStackTrace();}finally {sosRef.flush();sosRef.close();}}
5.3.2 启动tomcat并访问
这篇关于Jasperreports+jaspersoft studio学习教程(五)- JavaBean作为数据源填充数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!