【问题标题】:How Keep session on Primefaces DataTable Filter如何在 Primefaces 数据表过滤器上保持会话
【发布时间】:2012-04-18 09:18:09
【问题描述】:

我有一个使用 Primefaces 数据表的页面,基本上 ManagedBean 查询数据库并将数据表中的信息显示为报告,我使用选项 filterBy 进行过滤。

信息自动更新,通过页面刷新,我的问题是当系统重新加载页面时,系统丢失了在过滤器中输入的信息,然后用户必须再次在过滤器中输入信息。

我需要保留用户输入的信息,然后我认为我需要保留我页面的过滤器的会话,我认为它可以解决我的问题。

【问题讨论】:

  • @sapc1313031 您是否应该将 bean 作为会话范围?
  • 通常最好避免会话范围,因为它不是后退按钮/新窗口安全的。在 JSF 2.0 中,可以使用 View Scope、Flash Scope 等替代方案。或者,您可以使用 Tomahawk 的 saveState 标签来维护页面请求之间的状态

标签: java filter datatable primefaces refresh


【解决方案1】:

此时 PrimeFaces 似乎不支持保存数据表的过滤器值(从 PF 3.2 开始)。

建议您改为为该列实现一个标题方面,并在其中添加一个输入字段,该字段绑定到将执行过滤器的支持 bean 上的方法。这样,您就可以将过滤器字段的值存储在 View Scope 中(使用 View Scope 托管 bean 或 Tomahawk 的 saveState 组件)。请注意,输入字段可以(并且可能应该)使用 ap:ajax 组件进行设置,这样当用户更改字段上的值时,将调用支持 bean 方法,以便过滤器将执行完全相同的操作您使用 p:column 的 filterBy 属性实现了它。

当我想要一个过滤器时,我已经完成了上述操作,使用弹出日历作为日期并且效果很好。

【讨论】:

    猜你喜欢
    • 2014-01-04
    • 1970-01-01
    • 2014-01-25
    • 2013-08-01
    • 2012-11-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多