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如下:

 
  1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  2.  
  3. Map<String,Object> parameters = new HashMap<String,Object>(16);

  4.  
  5. String jrxmlPath = request.getServletContext().getRealPath("/")+"/jrxml/DemoReport4.jrxml";

  6. //由jrxml文件编译后生产jasper文件的路径

  7. String jasperPath = request.getServletContext().getRealPath("/")+"/jasper/DemoReport4.jasper";

  8.  
  9. FileInputStream isRef = null;

  10. ServletOutputStream sosRef = null;

  11.  
  12. try {

  13. //编译jrxml生产jasper文件

  14. JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath);

  15.  
  16. isRef = new FileInputStream(new File(jasperPath));

  17. sosRef = response.getOutputStream();

  18. //组装list数据源

  19. List<User> list = new ArrayList<User>();

  20. for(int i = 1; i <= 100; i++) {

  21. User user = new User(i,"小明"+i,18,i);

  22. list.add(user);

  23. }

  24.  
  25. //new JRBeanCollectionDataSource(list) 以javaBean为数据源注入报表数据

  26. JasperRunManager.runReportToPdfStream(isRef, sosRef, parameters, new JRBeanCollectionDataSource(list));

  27. response.setContentType("application/pdf");

  28. } catch (JRException e) {

  29.  
  30. e.printStackTrace();

  31. }finally {

  32. sosRef.flush();

  33. sosRef.close();

  34. }

  35. }

  36.  



5.3.2 启动tomcat并访问

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值