【发布时间】:2012-01-05 06:14:47
【问题描述】:
给定一个 JSF/EJB 堆栈,如何使用 pojo/entity bean 中的字段值自动过滤 dataTable 列表的内容?
即我有一个实体 bean Employee,其 name 字段的值为“John” 我想使用此 bean 过滤数据表以仅显示名称为 John 的记录,而不必手动构造 where 子句?
【问题讨论】:
给定一个 JSF/EJB 堆栈,如何使用 pojo/entity bean 中的字段值自动过滤 dataTable 列表的内容?
即我有一个实体 bean Employee,其 name 字段的值为“John” 我想使用此 bean 过滤数据表以仅显示名称为 John 的记录,而不必手动构造 where 子句?
【问题讨论】:
我使用PrimeFaces' dataTable 进行过滤并最终进行延迟加载。单独过滤是在客户端级别完成的,而延迟加载是在服务器级别完成的。
Here你可以找到一些例子。
两者都由 PrimeFaces 使用 Ajax 功能实现:输入每个字符时,都会应用过滤器并更新结果。
使用 PrimeFaces 的延迟加载,您还可以自己处理过滤器:在过滤器中键入字符时,会调用您的过滤器实现:通过一些 Criteria Builder 查询,您可以编写 WHERE 条件以类型安全和 OO 的方式,通过构建 Predicates 的数组:这意味着您不需要编写单行 sql 代码。
【讨论】: