2011-07-18 45 views
3

我試圖更好地理解JSF 2中的@ViewScoped bean的低級工作。服務器在請求之間保留視圖範圍的bean的位置?我注意到我的視圖範圍的bean需要實現Serializable,所以它們必須被序列化到某個位置。JSF 2 - @ViewScoped bean在請求之間存在的位置?

任何人都可以解釋這個或提供一個鏈接到文檔解釋它嗎?

我在問這個問題,因爲我可能已經將範圍相關的缺陷引入到我的webapp中。瞭解@ViewScoped的工作原理將幫助我排除一些潛在的原因。

回答

6

@ViewScoped豆被存儲在UIViewRoot的視圖地圖:

UIViewRoot是代表 UIComponent樹的根的UIComponent。此組件將標記顯示爲對 Ajax請求的響應。它也可作爲組件樹的根...

事實上,你可以訪問此視圖地圖自己,東西價值在那裏使用:

facesContext.getViewRoot().getViewMap()... 

欲瞭解更多信息,請參閱JSF API doc: http://javaserverfaces.java.net/nonav/docs/2.0/javadocs/javax/faces/component/UIViewRoot.html

+0

這就是我一直在尋找的。謝謝! –