2009-10-06 104 views
0

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

回答

3

有哪些,我想起两个选项:

  1. 利用JSF导航规则
  2. 使用渲染属性

广告1)

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

导航规则将在faces-config.xml中 如果没有导航规则规定动作比赛中定义,当前页面将重新显示(虽然从经验中我做了这个刷新是不同的,以一个共同的HTML刷新) 。

广告2)

如果你已经有的列表或设置在bean的模型在同一页上的数据表,更改会自动您使用的immediate关键字显示除了在保存按钮上设置为true。

此外,你可能会考虑与您所选择的内容,其具有rendered属性设置为你的bean一个布尔值,它会在保存过程中被触发,因此让内容的面板只打保存后显示。

1

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

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

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

咨询ICEfaces的开发者指南,了解更多信息。

0

这取决于你是如何做到的。

当您单击按钮时,JSF生命周期中拉开帷幕,如果您揭开序幕,保存到该按钮的动作在数据库中,无论值在您的管理bean的更新应该在页面自动的反映。 JSF生命周期会自动为您完成此任务,并且icefaces可以使用AJAX桥来完成此任务,因此您不需要执行页面重新加载。

如果您在异步工作,您需要使用Push API icefaces提供给您。从服务器端启动生命周期。