0

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

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

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

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

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

4

1 回答 1

2

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

例如

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

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

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

于 2012-08-14T14:34:10.393 回答