2012-08-14 74 views
0

我有一个菜单项,指向不同的视图。显示或更改视图后执行一些代码

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

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

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

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

回答

2

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

E.g.

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

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

这将在渲染响应阶段开始时被调用每次。

+0

谢谢。这正是我需要的。 – Seitaridis 2012-08-16 08:24:04