在显示或更改视图后执行一些代码

时间:2012-08-14 06:17:49

标签: java jsf session-scope view-scope

我有一个菜单,其中包含指向不同视图的项目。

每个视图都有一个带有附加侦听器的选择组合框。

在该视图中,我使用会话范围的托管bean。

当我第一次导航到视图时,在构造bean时会调用一个方法。当用户从选择框更改值时,将调用相同的方法。但是重新显示视图时不会调用该方法。

这是因为我使用了会话范围的bean。一个更好的解决方案是使用视图范围的bean,但我正在寻找替代方案。有没有办法在视图更改时执行某些代码?

1 个答案:

答案 0 :(得分:2)

您可以使用<f:event>preRenderView事件附加侦听器方法。

E.g。

<f:event type="preRenderView" listener="#{bean.preRenderView}" />

public void preRenderView() {
    // ...
}

每次在渲染响应阶段开始时都会调用它。