2012-08-07 51 views
2

我只是聲明一個簡單的FacesComponent來將它與複合組件一起使用。FacesComponent的生存期

@FacesComponent("fc/myFacesComponent") 
public class MyFacesComponent extends UINamingContainer { 
    ... 
} 

現在我問自己,FacesComponent註釋類的生命期有多長?

回答

1

組件本身將從初始構建視圖(JSF生命週期的第一個階段)直到構建第二次構建組件樹的渲染視圖階段。 但我想知道你是否真的想問別的問題。也許關於託管bean的生命週期?

+0

不,這實際上我想知道。非常感謝。 – 2012-08-07 12:29:53

+0

組件樹在渲染響應階段根本沒有第二次構建。 – BalusC 2012-08-07 13:39:03

+0

當然,至少再一次,因爲視圖可能會在之前的階段和事件中發生變化。當然,當視圖ID改變時。檢查MyFace的org.apache.myfaces.lifecycle.RenderResponseExecutor.execute()。當視圖ID沒有改變時,在渲染階段甚至需要第二個buildView過程,因爲如果存在JSTL標籤(例如c)時樹可以改變:如果在視圖上或者使用動態包含(ui:include with EL expression at at SRC屬性)。 – Ingo 2012-08-07 14:15:46

-1

@FacesComponent(「fc/myFacesComponent」)生命期是Request Scope,我們不能改變它。

如果您想要,您可以在其中注入bean(Session)並獲取狀態並將其顯示給組件。

備份bean是JSF託管的bean或CDI Weld Bean。

謝謝, Roshan