我有一个页面,用户输入数据并点击“保存”按钮。 数据将保存到数据库中,我希望页面自行重新生成以反映数据库中的新数据。 我正在使用托管bean,如何让页面自行刷新?
答案 0 :(得分:3)
我想到了两个选项:
广告1)
定义在点击“保存”后您将导航到的页面。
为此,您实际将数据保存到数据库的操作将进入定义为actionListener
的方法,或者,如果您希望根据保存过程的结果使下一页成为action
}。
导航规则将在faces-config.xml中定义 如果没有导航规则与给定操作匹配,则将重新显示当前页面(尽管根据我的经验,此刷新与常见的HTML刷新不同)。
ad 2)
如果您在bean中的某个模型设置了同一页面上的某些列表或数据表,则会自动显示更改,您正在使用immediate
关键字集在保存按钮上为true。
此外,您可能会考虑一个面板,其中包含您所选择的内容,其中rendered
属性设置为您的bean中的布尔值,这将在保存过程中触发,因此只有在点击后才能显示内容保存
答案 1 :(得分:1)
您可以使用IceFaces的AJAX推送功能。这会初始化客户端的重新呈现。
推荐(也是最简单)的方法是在托管bean中使用SessionRender API:
SessionRenderer.addCurrentSession("myGroup");
SessionRenderer.render("myGroup");
有关详细信息,请参阅Icefaces开发人员指南。
答案 2 :(得分:0)
这取决于你是怎么做的。
当您单击该按钮时,JSF生命周期将启动,如果您在按钮操作中启动保存到数据库,则您在管理bean中更新的任何值都应自动反映在页面中。 JSF生命周期会自动为您执行此操作,并且icefaces可以使用AJAX桥来执行此操作,因此您不需要执行页面重新加载。
如果您正在异步工作,则需要使用Push API icefaces为您提供。从服务器端开始生命周期。