2012-02-14 48 views
0

是否有像@PostConstruct這樣的註釋,用於恢復視圖後應該調用的方法?我想每次請求刷新一次數據。任何想法如何做到這一點?恢復視圖後刷新數據

回答

2

不是註釋,但可以使用<f:event type="preRenderView">

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

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

然而,我不知道這是否豆不能更好地被放置在請求範圍,因爲它似乎舉行請求範圍的數據也是如此。也許你需要把bean分成不同範圍的兩個bean,其中一個是請求範圍,它包含你需要在每個請求中刷新的數據。

+0

分裂將是可能的,這是一個很好/常見的做法? – wutzebaer 2012-02-14 12:55:19

+0

良好做法?這只是有意義的。爲什麼你會將請求範圍數據存儲在會話範圍中?當用戶在同一會話中的不同瀏覽器窗口/選項卡中請求頁面並在切換它們時與它們交互時,它只會對用戶體驗造成負面影響。使用相同的範圍作爲數據所屬。另見http://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope/7031941#7031941 – BalusC 2012-02-14 12:57:14

+0

我有一個實體,應該刷新每次用戶重新加載頁面,但是當我的處理程序beand將被請求作用域時,它會忘記用戶選擇哪個實體 – wutzebaer 2012-02-14 13:01:49