2011-11-15 196 views
0

我有一個支持bean的變量,每當使用相關菜單鏈接打開關聯頁面時,需要將其重置爲null。有沒有辦法在後臺bean中運行初始化代碼,只要點擊相關的菜單鏈接? Contsructor只在第一次點擊菜單鏈接時運行。我猜這個bean然後被保留在jsf上下文中,並沒有被重新創建。有沒有辦法確保每次單擊菜單鏈接時都會創建該支持bean的新對象?謝謝!支持Bean初始化

回答

1

難道你不能只把bean放在請求範圍內嗎?

另一種選擇是在菜單上使用setpropertyactionlistener。點擊菜單後,將該值設置爲「null」。

1

您有以下選擇:

1。將bean更改爲請求範圍的bean

2。使用action屬性調用支持bean的方法來運行,只要點擊這個鏈接初始化代碼,像這樣:

<h:commandLink action="#{myBean.init}" value="My Link" /> 

而且myBean.init()包含初始化代碼

+0

感謝您的答覆。我試圖將其改爲「請求」範圍,但某些驗證消息未顯示(需要了解原因)。除此之外,當我使用action =「#{managedbean.init}」時,如果在第一次加載頁面時單擊相關菜單項,則會拋出「viewexpired」異常,並在地址欄中顯示不同的鏈接。當我點擊其他菜單項並點擊此鏈接時,它會正常打開。 –