我可以看到EL屬性存儲在StateHelper
和組件的getAttributes()
映射中的字符串文字中。什麼是生命週期以及爲什麼需要兩個容器?StateHelper的角色和生命週期是什麼?
同樣在生命週期的哪些階段是EL ValueExpression
評估? (每次getStateHelper.eval()
叫?)
我可以看到EL屬性存儲在StateHelper
和組件的getAttributes()
映射中的字符串文字中。什麼是生命週期以及爲什麼需要兩個容器?StateHelper的角色和生命週期是什麼?
同樣在生命週期的哪些階段是EL ValueExpression
評估? (每次getStateHelper.eval()
叫?)
StateHelper
提供組件開發者(誰繼承UIComponent
直接,而不是一個標準組件),以保持整個請求組件的狀態便利。它在JSF視圖狀態保存中起着不可或缺的作用,而底層合約提供的不僅僅是一種手段來存儲組件屬性。
通過繼承StateHelper
,組件開發人員可以更方便鑰匙插入的StateHolder
的saveState
和restoreState
方法,其中理應方法,以保證一個組件(及其子組件)有他們的狀態正確地持久化(按照所配置的狀態保存模式)的JSF Impl。
與基本上是組件變量存儲的getAttributes()
映射進行對比,並且在單個請求的生命週期中,這個映射通常是相關的。它不提供其他服務而不是保留內容。
ValueExpression
是在組件的壽命評估至少 2倍:RESTORE_VIEW
和UPDATE_MODEL_VALUES
階段,出於明顯的原因:第一,得到部件的適當的渲染和第二,提交驗證和轉換後的值到背襯豆
寫得不錯。感謝您詳細介紹它。 – 2015-03-06 18:24:32