当前位置: 首页 > 知识库问答 >
问题:

Java Web App调用以ArrayList作为数据源的Jasper Report的最佳方法[重复]

师腾
2023-03-14

我有一个正在使用的Java Web应用程序。它更像是一个业务流程web应用程序。

我想添加一个生成报告的功能。我想试试贾斯珀报告。所以我研究了如何将JavaWebApp连接到jasper report,有结果,但是没有关于ArrayList/list的内容。

我希望数据源为ArrayList/List,因为我正在这个项目上使用MVC框架。到目前为止,我发现的所有帖子和视频都没有什么相似之处,因为它们将JasperReport连接到数据库。

有人可以启发我如何在 java Web 应用程序上调用 jasper 报告并将 arrayList/List 作为其数据源。提前谢谢。

共有1个答案

陆烨烁
2023-03-14

这需要几个步骤。尝试以下操作:

List<Object> dataBeans = ...//get your beans.
JRBeanCollectionDataSource beansDataSource = 
    new JRBeanCollectionDataSource(dataBeans);
Map<String, Object> parameters = ...//create your parameter map to fill parameters in your template.
JasperPrint jasperPrint = 
     JasperFillManager.fillReport(templateStream, parameters, beansDataSource);

//Export the report:
//PDF:
byte[] pdfBinary = JasperExportManager.exportReportToPdf(jasperPrint);

//HTML:
String tempFile = "/tmp/report.html";

File file = new File(tempFile);
file.createNewFile();

JasperExportManager.exportReportToHtmlFile(jasperPrint, tempFile);
//Then you can read it back into a byte stream if needed, but that 
//takes standard IO...
 类似资料:
  • 在我的Java web应用程序中,我确实生成了一个报告,每个客户都检测到一个页面。 我已经创建了一个JasperReport,如果客户列表超过1个,我想连接生成的报告。 这是我的代码: 我想获取合并的PDF,但我找不到在ByteArrayOutputStream中导出JasperPrint列表的功能。 有什么建议吗?

  • 问题内容: 我上了一堂课,想跟踪学生的统计数据。我打算稍后制作一个GUI来处理这些数据。 我的主要问题是:保存和以后检索此数据的最佳方法是什么? 我已经读过关于pickle和JSON的文章,但是我并没有真正了解它们的工作方式(尤其是关于它们如何保存数据的信息,例如哪种格式和位置)。 问题答案: 对于持久性数据(存储有关学生的信息),数据库是一个不错的选择。如前所述,Python附带了Sqlite3

  • 问题内容: 今天,当我获得一段已经使用了数百次的代码时,我很高兴地开始编码: 遍历一个Collection(这里是ArrayList) 由于某种原因,我实际上查看了Eclipse的自动完成选项,这让我感到奇怪: 在哪些情况下,以下循环比其他情况更好使用? 经典的数组索引循环: 迭代器具有next()/ next(): 我最喜欢的是因为它写起来很简单: 问题答案: 当您还需要元素的索引时,第一个很有

  • 问题内容: 我有一个我想完全输出为String的。本质上,我想使用由制表符分隔的每个元素按顺序输出。有什么快速的方法可以做到这一点吗?你可以遍历它(或删除每个元素)并将其连接为字符串,但我认为这会非常慢。 问题答案: 基本上,使用循环来迭代是唯一的选择: 不要使用此代码,请继续阅读此答案的底部,以了解为什么不希望使用此代码,以及应该使用哪个代码代替: 实际上,字符串串联就可以了,因为javac编译

  • 问题内容: 我有一个包含3列的表格- id(pk),pageId(fk),名称。我有一个PHP脚本,它将大约5000条记录转储到表中,其中大约一半是重复的,具有相同的pageId和名称。pageId和名称的组合应该是唯一的。当我遍历php中的脚本时,防止重复项被保存到表中的最佳方法是什么? 问题答案: 第一步是在表上设置唯一键: 然后,当有重复项时,您必须决定要做什么。你应该: 忽略它? 覆盖先前

  • 当我必须使用带有ListView的经典适配器时,我会像这样更新ListView中的数据: 我想知道什么是RecyclerView的最佳实践。因为在RecyclerView适配器中不能像在ListView中那样执行和。 所以我尝试使用,但没有效果。然后我尝试在视图上使用swapAdapter: 但是对于最后一个解决方案,我仍然必须创建一个适配器的新实例,我觉得这不是最好的解决方案。我应该可以在不使用