【问题标题】:ICEFaces page refreshICEFaces 页面刷新
【发布时间】:2010-12-04 09:02:22
【问题描述】:

我有一个用户输入数据并点击“保存”按钮的页面。 数据被保存到数据库中,我希望页面自行刷新以反映数据库中的新数据。 我正在使用托管 bean,如何让页面自行刷新?

【问题讨论】:

    标签: icefaces


    【解决方案1】:

    我想到了两个选项:

    1. 利用 JSF 导航规则
    2. 使用呈现的属性

    广告 1)

    定义点击“保存”后导航到的页面。 为此,您将数据实际保存到 DB 的操作将进入定义为 actionListener 的方法,或者,如果您想根据保存过程的结果制作下一页,则为 action

    导航规则将在 faces-config.xml 中定义 如果没有导航规则与给定操作匹配,则将重新显示当前页面(尽管根据我的经验,此 refresh 与普通的 HTML 刷新不同)。

    广告 2)

    如果您将同一页面上的某些列表或数据表设置为 bean 中的模型,则更改将自动显示除了您使用的 immediate 关键字设置为 true在您的保存按钮上。

    此外,您可能会考虑一个面板,其中包含您选择的内容,其 rendered 属性在您的 bean 中设置为布尔值,这将在保存过程中触发,因此仅在点击 保存

    【讨论】:

      【解决方案2】:

      您可以使用 IceFaces 的 AJAX 推送功能。这会初始化客户端的重新渲染。

      推荐的(也是最简单的)方法是在托管 bean 中使用 SessionRender API:

      SessionRenderer.addCurrentSession("myGroup");
      SessionRenderer.render("myGroup");
      

      有关更多信息,请参阅 Icefaces 开发人员指南。

      【讨论】:

        【解决方案3】:

        这取决于你如何做。

        当您单击按钮时,JSF 生命周期就开始了,如果您在按钮的操作中开始保存到数据库,那么您在管理 bean 中更新的任何值都应该自动反映在页面中。 JSF 生命周期会自动为您执行此操作,icefaces 可以使用 AJAX 桥接器完成此操作,因此您无需重新加载页面。

        如果您以异步方式工作,则需要使用 icefaces 为您提供的 Push API。从服务器端开始生命周期。

        【讨论】:

          猜你喜欢
          • 2010-12-15
          • 2012-06-12
          • 1970-01-01
          • 2011-05-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-27
          • 2011-12-22
          相关资源
          最近更新 更多