2012-08-14 22 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