不幸的是,OpenFaces Datatable还没有与 Primefaces 或 IceFaces 不同的导出功能。虽然导出是小菜一碟,但过滤 IceFaces 或 primefaces 数据表并不容易,但 primeFaces 的过滤不适用于 JSF DataModel(可悲但确实如此)。
使用 OpenFaces DataTable 过滤是小菜一碟,非常方便和强大。但是想要将她/他过滤的数据表导出为CSV或MS Excel等格式的最终用户怎么样。
来自 OpenFaces 的伟大 Dmitry 给了我一个提示:使用 OpenFaces DataTable 方法:getDisplayedRowDatas()
它将从数据表中获取当前显示的行,然后使用像 Itext 这样的第三方库以 PDF 格式导出。
在我看来,这应该是这样的:
- 为此目的创建一个支持 bean。
- 将Apache POI第三个库添加到类路径
- 使用 Apache POI 编写代码以使用其方法导出 OpenFaces 数据表的内容
getDisplayedRowsDatas()
- 但恐怕此方法不会返回列标题的名称 - 或者将 OpenFaces 数据表呈现的 HTML 表作为缓冲字符串获取并使用 Apache POI 以生成与缓冲区一起流式传输的 Excel 文件。
在我最近遇到的 MyFaces 示例中:MyFaces Datatable Export Example,开发人员使用 Myfaces 组件<t:buffer value=#{myExportBean.myBufferString}> datatable here </t:buffer />
将数据表的内容转换为缓冲字符串,这使事情变得更容易。不幸的是,JSF Core 没有这样的组件。
以前有人遇到过这个吗?非常感谢帮助或更好的选择。