ICEFaces页面刷新

发布于 2024-08-06 15:49:41 字数 90 浏览 5 评论 0原文

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

I have a page where a user enters data and hits a "save" button.
The data gets saved to the db, and I want the page to refrsh itself to reflect the new data in the db.
I am using a managed bean, how do i get the page to refresh on its own?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不奢求什么 2024-08-13 15:49:41

我想到了两个选项:

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

ad 1)

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

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

ad 2)

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

此外,您可能会考虑使用一个包含您选择的内容的面板,该面板将 Bean 中的 rendered 属性设置为布尔值,该属性将在保存过程中触发,因此仅在点击后才显示内容保存

There are two options which come to my mind:

  1. Make use of JSF navigation rules
  2. Use the rendered attributes

ad 1)

Define a page to which you'll navigate to after hitting "save".
For doing that, your action for actually saving the data to DB will go into the method defined as an actionListener or, if you want to make your next page depending on the outcome of the saving process, as action.

Navigation rules will be defined in faces-config.xml
If no navigation rule matches a given action, the current page will be redisplayed (although from the experience i made this refresh is different to a common HTML refresh).

ad 2)

If you've some lists or a data table on the same page set to a model in your bean, changes will automatically be displayed except you're using the immediate keyword set to true on your save button.

Additionally you might consider a panel with a content of your choice which has the rendered property set to a boolean in your bean, which will be triggered within the saving process and therefore let the content be displayed only after hitting save.

将军与妓 2024-08-13 15:49:41

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

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

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

请参阅 Icefaces 开发人员指南以获取更多信息。

You can make use of the AJAX push feature of IceFaces. This initializes a re-render of the client.

The recommended (and easiest) way is to use the SessionRender API in your managed bean:

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

Consult the Icefaces developers guide for more information.

掩耳倾听 2024-08-13 15:49:41

这取决于你如何做。

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

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

It depends on how you do it.

When you click the button, the JSF life-cycle is kicked off, if you kick off the save to the database within the button's action, whatever values you update in your manage bean should be reflected in the page automagically. The JSF lifecycle does this for you automatically and icefaces can do it using the AJAX bridge so you won't be required to do a page reload.

If you're doing work asynchronously, you'll need to use the Push API icefaces provides you. To kick off the life-cycle from the server end.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文