我有一个菜单,其中包含指向不同视图的项目。
每个视图都有一个带有附加侦听器的选择组合框。
在该视图中,我使用会话范围的托管 Bean。
当我第一次导航到视图时,在构造 bean 时调用了一个方法。当用户从选择框中更改值时,将调用相同的方法。但是,当重新显示视图时,不会调用该方法。
发生这种情况是因为我使用会话范围的 bean。更好的解决方案是改用视图范围的 bean,但我正在寻找替代方案。有没有办法在视图更改时执行某些代码?
您可以使用
<f:event>
其中将侦听器方法附加到事件preRenderView
。
例如
<f:event type="preRenderView" listener="#{bean.preRenderView}" />
跟
public void preRenderView() {
// ...
}
每次在渲染响应阶段开始时都会调用它。