クラス UIViewRoot
- java.lang.ObjectSE
-
- jakarta.faces.component.UIComponent
-
- jakarta.faces.component.UIComponentBase
-
- jakarta.faces.component.UIViewRoot
- 実装されているすべてのインターフェース:
PartialStateHolder、StateHolder、TransientStateHolder、UniqueIdVendor、ComponentSystemEventListener、FacesListener、SystemEventListenerHolder、EventListenerSE
public class UIViewRoot extends UIComponentBase implements UniqueIdVendor
UIViewRoot は、UIComponent ツリーのルートを表す UIComponent です。このコンポーネントは、Ajax リクエストへのレスポンスとしてマークアップをレンダリングします。また、コンポーネントツリーのルートとしても機能し、ビューごとの
PhaseListenerをハングアップする場所としても機能します。次のライフサイクルフェーズメソッドのそれぞれについて:
RenderResponse、
encodeBegin(jakarta.faces.context.FacesContext)およびencodeEnd(jakarta.faces.context.FacesContext)経由
PhaseListenerに関して次のアクションを実行します。状態フラグを
falseに初期化します。getBeforePhaseListener()が非 nullを返す場合は、リスナーを呼び出して、このフェーズに対応する正しいPhaseIdを渡します。リスナーから戻ったら、
FacesContext.getResponseComplete()およびFacesContext.getRenderResponse()を呼び出します。いずれかがtrueを返す場合は、内部状態フラグをtrueに設定します。addPhaseListener(jakarta.faces.event.PhaseListener)の呼び出しによって 1 つ以上のリスナーが追加された場合は、PhaseListener.getPhaseId()が現在の phaseId と一致する各リスナーに対してbeforePhaseメソッドを呼び出し、前の手順と同じPhaseIdを渡します。各リスナーから戻ったら、
FacesContext.getResponseComplete()とFacesContext.getRenderResponse()を呼び出します。いずれかがtrueを返す場合は、内部状態フラグをtrueに設定します。内部状態フラグが設定されていない場合は、このフェーズの処理を実行します。
getAfterPhaseListener()が非 nullを返す場合は、リスナーを呼び出して、このフェーズに対応する正しいPhaseIdを渡します。addPhaseListener(jakarta.faces.event.PhaseListener)の呼び出しによって 1 つ以上のリスナーが追加された場合は、PhaseListener.getPhaseId()が現在の phaseId と一致する各リスナーに対してafterPhaseメソッドを呼び出し、前の手順と同じPhaseIdを渡します。
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringSECOMPONENT_FAMILYこのコンポーネントの標準コンポーネントファミリ。static StringSECOMPONENT_TYPEこのコンポーネントの標準コンポーネント型。static StringSEMETADATA_FACET_NAMEビュールートのメタデータを含むファセットコレクション内のキー。static StringSEUNIQUE_ID_PREFIXcreateUniqueId()メソッドによって生成される識別子に使用されるプレフィックス。static StringSEVIEW_PARAMETERS_KEYビューメタデータ BeanDescriptor の値セットのキー。その値はList<UIViewParameter.Reference> です。static StringSEVIEWROOT_PHASE_LISTENER_QUEUES_EXCEPTIONS_PARAM_NAMEこのパラメーターが設定されていて、その値の文字列表現で toLowerCase().equals("true" )を呼び出すと true が返される場合、UIViewRootにインストールされたPhaseListenerによってスローされた例外は、ログに記録されて飲み込まれるのではなく、ExceptionHandlerのキューに入れられます。クラス jakarta.faces.component.UIComponent から継承されたフィールド
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, FACETS_KEY, VIEW_LOCATION_KEY
コンストラクターの概要
コンストラクター コンストラクター 説明 UIViewRoot()デフォルトのプロパティ値で新しいUIViewRootインスタンスを作成します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddComponentResource(FacesContext context, UIComponent componentResource)リソースインスタンスを表すと想定される引数componentを、リソースとしてこのビューに追加します。voidaddComponentResource(FacesContext context, UIComponent componentResource, StringSE target)リソースインスタンスを表すと想定される引数componentを、リソースとしてこのビューに追加します。voidaddPhaseListener(PhaseListener newPhaseListener)voidbroadcastEvents(FacesContext context, PhaseId phaseId)キューに入れられたイベントをブロードキャストします。StringSEcreateUniqueId()コンポーネントの識別子を生成します。StringSEcreateUniqueId(FacesContext context, StringSE seed)コンポーネントの識別子を生成します。voidencodeBegin(FacesContext context)デフォルトのUIComponentBase.encodeBegin(jakarta.faces.context.FacesContext)動作をオーバーライドします。voidencodeChildren(FacesContext context)PartialViewContext.isAjaxRequest()がtrueを返す場合は、PhaseId.RENDER_RESPONSEを指定してPartialViewContext.processPartial(jakarta.faces.event.PhaseId)を呼び出し、部分的なレンダリングを実行します。voidencodeEnd(FacesContext context)MethodExpressiongetAfterPhaseListener()このビューがレンダリングされた後に呼び出されるMethodExpressionを返します。MethodExpressiongetBeforePhaseListener()このビューがレンダリングされる前に呼び出されるMethodExpressionを返します。ListSE<UIComponent>getComponentResources(FacesContext context)サポートされているすべてのターゲットのすべてのUIComponentリソースの変更不可能な順序付けされたListを返します。ListSE<UIComponent>getComponentResources(FacesContext context, StringSE target)DoctypegetDoctype()このビューの Doctype を返します。StringSEgetFamily()このコンポーネントが属するコンポーネントファミリの識別子を返します。LocaleSEgetLocale()このビュー用に作成されているレスポンスのローカライズに使用するLocaleを返します。ListSE<PhaseListener>getPhaseListeners()このUIViewRootインスタンスにアタッチされているPhaseListenerインスタンスの変更不可能なリストを返します。StringSEgetRenderKitId()このビューに関連付けられているRenderKitのレンダーキット識別子を返します。booleangetRendersChildren()UIComponentBase.getRendersChildren()を呼び出すPartialViewContext.isAjaxRequest()がtrueを返す場合、このメソッドはtrueを返す必要があります。StringSEgetViewId()このビューのビュー識別子を返します。ListSE<SystemEventListener>getViewListenersForEventClass(ClassSE<? extends SystemEvent> systemEvent)型eventClassのイベントに関心のある、このUIComponentインスタンスに登録されているSystemEventListenerインスタンスを返します。MapSE<StringSE,ObjectSE>getViewMap()この実装は、trueを引数として渡してgetViewMap(boolean)を呼び出すだけで、結果を返します。MapSE<StringSE,ObjectSE>getViewMap(boolean create)「ビュースコープ」であるデータストアへのインターフェースとして機能するMapを返します。または、このインスタンスにそのようなMapがなく、create引数がtrueの場合は、Mapを作成して返します。booleanisInView()UIViewRootは常にビュー内にあるように定義されているため、スーパークラスメソッドをオーバーライドして常にtrueを返します。voidprocessApplication(FacesContext context)リクエスト処理ライフサイクルのアプリケーションの呼び出しフェーズでキューに入れられたイベントをブロードキャストし、このフェーズのイベント処理によってFacesContext.renderResponse()またはFacesContext.responseComplete()が呼び出された場合は、後のフェーズのイベントをすべてクリアします。voidprocessDecodes(FacesContext context)voidprocessEvent(ComponentSystemEvent event)引数eventがPostRestoreStateEventのインスタンスであり、PartialViewContext.isPartialRequest()がtrueを返す場合、すべてのコンポーネントリソースをループし、それぞれに対してResourceHandler.markResourceRendered(FacesContext, String, String)を呼び出します。voidprocessRestoreState(FacesContext context, ObjectSE state)デフォルトの実装はtryブロック内からUIComponentBase.processRestoreState(jakarta.faces.context.FacesContext, java.lang.Object)を呼び出す必要があります。voidprocessUpdates(FacesContext context)voidprocessValidators(FacesContext context)voidqueueEvent(FacesEvent event)デフォルトのUIComponentBase.queueEvent(jakarta.faces.event.FacesEvent)動作をオーバーライドして、後でブロードキャストするためにキューに入れられたイベントを累積します。voidremoveComponentResource(FacesContext context, UIComponent componentResource)このビューのリソースとして、リソースインスタンスを表すと想定されている引数componentを削除します。voidremoveComponentResource(FacesContext context, UIComponent componentResource, StringSE target)このビューのリソースとして、リソースインスタンスを表すと想定されている引数componentを削除します。voidremovePhaseListener(PhaseListener toRemove)引数toRemoveがこのインスタンスのPhaseListenerのリストにある場合は、削除する必要があります。voidresetValues(FacesContext context, CollectionSE<StringSE> clientIds)clientIds にアクセスし、コンポーネントがEditableValueHolderのインスタンスである場合は、そのEditableValueHolder.resetValue()メソッドを呼び出します。voidrestoreState(FacesContext context, ObjectSE state)state オブジェクトのエントリから状態を復元するために必要な処理を実行します。voidrestoreViewScopeState(FacesContext context, ObjectSE state)ViewScope 状態を復元します。ObjectSEsaveState(FacesContext context)インスタンスの状態をSerializableオブジェクトとして取得します。voidsetAfterPhaseListener(MethodExpression newAfterPhase)UIViewRoot がライフサイクルを実行するときに、"afterPhase" イベントに対して任意のメソッドを呼び出すことを許可します。voidsetBeforePhaseListener(MethodExpression newBeforePhase)UIViewRoot がライフサイクルを実行するときに、"beforePhase" イベントに対して任意のメソッドを呼び出すことを許可します。voidsetDoctype(Doctype doctype)このビューの Doctype を設定します。voidsetInView(boolean isInView)アクションを実行しないようにオーバーライドされます。voidsetLocale(LocaleSE locale)このビューに対して作成されているレスポンスのローカライズに使用するLocaleを設定します。voidsetRenderKitId(StringSE renderKitId)このビューに関連付けられているRenderKitのレンダーキット識別子を設定します。voidsetViewId(StringSE viewId)このビューのビュー識別子を設定します。voidsubscribeToViewEvent(ClassSE<? extends SystemEvent> systemEvent, SystemEventListener listener)引数listenerによって参照されるリスナーインスタンスを、型systemEventClassのイベントのリスナーとしてUIViewRootにインストールします。voidunsubscribeFromViewEvent(ClassSE<? extends SystemEvent> systemEvent, SystemEventListener listener)型systemEventClassのイベントのリスナーとして、引数listenerによって参照されるリスナーインスタンスをUIViewRootから削除します。クラス jakarta.faces.component.UIComponentBase から継承されたメソッド
addClientBehavior, addFacesListener, broadcast, clearInitialState, decode, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, invokeOnComponent, isRendered, isTransient, markInitialState, processSaveState, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, subscribeToEvent, unsubscribeFromEvent
クラス jakarta.faces.component.UIComponent から継承されたメソッド
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isVisitable, popComponentFromEL, pushComponentToEL, restoreTransientState, saveTransientState, setValueExpression, visitTree
フィールドの詳細
METADATA_FACET_NAME
public static final StringSE METADATA_FACET_NAME
ビュールートのメタデータを含むファセットコレクション内のキー。例:UIViewParameterはここに格納されます。- 関連事項:
- 定数フィールド値
VIEW_PARAMETERS_KEY
public static final StringSE VIEW_PARAMETERS_KEY
ビューメタデータ BeanDescriptor の値セットのキー。その値は
List<UIViewParameter.Reference> です。- 導入:
- 2.0
- 関連事項:
- 定数フィールド値
COMPONENT_FAMILY
public static final StringSE COMPONENT_FAMILY
このコンポーネントの標準コンポーネントファミリ。
- 関連事項:
- 定数フィールド値
VIEWROOT_PHASE_LISTENER_QUEUES_EXCEPTIONS_PARAM_NAME
public static final StringSE VIEWROOT_PHASE_LISTENER_QUEUES_EXCEPTIONS_PARAM_NAME
このパラメーターが設定されていて、その値の文字列表現で toLowerCase().equals("true" )を呼び出すと true が返される場合、
UIViewRootにインストールされたPhaseListenerによってスローされた例外は、ログに記録されて飲み込まれるのではなく、ExceptionHandlerのキューに入れられます。- 導入:
- 2.3
- 関連事項:
- 定数フィールド値
コンストラクターの詳細
UIViewRoot
public UIViewRoot()
デフォルトのプロパティ値で新しい
UIViewRootインスタンスを作成します。
メソッドの詳細
isInView
public boolean isInView()
UIViewRootは常にビュー内にあるように定義されているため、スーパークラスメソッドをオーバーライドして常にtrueを返します。- オーバーライド:
- クラス
UIComponentのisInView - 戻り値:
- ビュー階層内の場合は
true、それ以外の場合はfalse。 - 導入:
- 2.0
setInView
public void setInView(boolean isInView)
アクションを実行しないようにオーバーライドされます。
- オーバーライド:
- クラス
UIComponentのsetInView - パラメーター:
isInView- 値を無視します。- 導入:
- 2.0
getFamily
public StringSE getFamily()
クラスからコピーされた説明:UIComponentこのコンポーネントが属するコンポーネントファミリの識別子を返します。この識別子は、
rendererTypeプロパティの値と組み合わせて、このコンポーネントインスタンスに適切なRendererを選択するために使用できます。このメソッドはnullを返すべきではないことに注意してください- 次で指定:
- クラス
UIComponentのgetFamily - 戻り値:
- コンポーネントファミリ(null 以外)。
- 関連事項:
UIComponent.getFamily()
getRenderKitId
public StringSE getRenderKitId()
このビューに関連付けられている
RenderKitのレンダーキット識別子を返します。ViewHandler.createView(jakarta.faces.context.FacesContext, java.lang.String)のように明示的に設定されていない限り、戻り値はnull.になります。- 戻り値:
- レンダーキット ID、または
null。
setRenderKitId
public void setRenderKitId(StringSE renderKitId)
このビューに関連付けられている
RenderKitのレンダーキット識別子を設定します。このメソッドは、リクエスト処理ライフサイクルの「リクエスト値の適用」フェーズの終了(つまり、イベントがブロードキャストされているとき)から「レスポンスのレンダリング」フェーズの開始までの任意の時点で呼び出すことができます。
getViewId
public StringSE getViewId()
このビューのビュー識別子を返します。
- 戻り値:
- ビュー ID。
setViewId
public void setViewId(StringSE viewId)
このビューのビュー識別子を設定します。
- パラメーター:
viewId- 新しいビュー識別子
getDoctype
public Doctype getDoctype()
このビューの Doctype を返します。
- 戻り値:
- このビューの Doctype。
- 導入:
- 4.0
setDoctype
public void setDoctype(Doctype doctype)
このビューの Doctype を設定します。
- パラメーター:
doctype- ドキュメント型。- 導入:
- 4.0
getBeforePhaseListener
public MethodExpression getBeforePhaseListener()
このビューがレンダリングされる前に呼び出される
MethodExpressionを返します。- 戻り値:
- このビューがレンダリングされる前に呼び出される
MethodExpression。 - 導入:
- 1.2
setBeforePhaseListener
public void setBeforePhaseListener(MethodExpression newBeforePhase)
UIViewRoot がライフサイクルを実行するときに、"beforePhase" イベントに対して任意のメソッドを呼び出すことができます。このメソッドは、
PhaseId.RESTORE_VIEWを除くすべてのフェーズで呼び出されます。実際のPhaseListenerとは異なり、このアプローチでは、特定のフェーズに対してのみPhaseEventを受信することはできません。メソッドは、
PhaseListener.beforePhase(jakarta.faces.event.PhaseEvent)の署名に準拠している必要があります。- パラメーター:
newBeforePhase- このビューがレンダリングされる前に呼び出されるMethodExpression。- 導入:
- 1.2
getAfterPhaseListener
public MethodExpression getAfterPhaseListener()
このビューがレンダリングされた後に呼び出される
MethodExpressionを返します。- 戻り値:
- このビューがレンダリングされた後に呼び出される
MethodExpression。 - 導入:
- 1.2
setAfterPhaseListener
public void setAfterPhaseListener(MethodExpression newAfterPhase)
UIViewRoot がライフサイクルを実行するときに、"afterPhase" イベントに対して任意のメソッドを呼び出すことができます。このメソッドは、
PhaseId.RESTORE_VIEWを含むすべてのフェーズに対して呼び出されます。実際のPhaseListenerとは異なり、このアプローチでは、特定のフェーズに対してのみPhaseEventを受信することはできません。メソッドは、
PhaseListener.afterPhase(jakarta.faces.event.PhaseEvent)の署名に準拠している必要があります。- パラメーター:
newAfterPhase- このビューがレンダリングされた後に呼び出されるMethodExpression。- 導入:
- 1.2
removePhaseListener
public void removePhaseListener(PhaseListener toRemove)
引数
toRemoveがこのインスタンスのPhaseListenerのリストにある場合は、削除する必要があります。- パラメーター:
toRemove- 削除するPhaseListener。- 導入:
- 1.2
addPhaseListener
public void addPhaseListener(PhaseListener newPhaseListener)
引数
newPhaseListenerをこのUIViewRootのPhaseListenerのリストに追加します。- パラメーター:
newPhaseListener- 追加するPhaseListener- 導入:
- 1.2
getPhaseListeners
public ListSE<PhaseListener> getPhaseListeners()
この
UIViewRootインスタンスにアタッチされているPhaseListenerインスタンスの変更不可能なリストを返します。- 戻り値:
- フェーズリスナーのリスト。
- 導入:
- 2.0
addComponentResource
public void addComponentResource(FacesContext context, UIComponent componentResource)
このビューのリソースとして、リソースインスタンスを表すと想定される引数
componentを追加します。リソースインスタンスは、標準 HTML RenderKit に従って、リソースRendererによってレンダリングされます。デフォルトの実装では、addComponentResource(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent, java.lang.String)を呼び出す必要があります。- パラメーター:
context- 現在のリクエストのFacesContextcomponentResource-Resourceインスタンスを表すUIComponent- 導入:
- 2.0
addComponentResource
public void addComponentResource(FacesContext context, UIComponent componentResource, StringSE target)
このビューのリソースとして、リソースインスタンスを表すと想定される引数
componentを追加します。リソースインスタンスは、標準 HTML RenderKit に従って、リソースRendererによってレンダリングされます。componentは、次のアルゴリズムを使用して追加する必要があります。target引数がnullの場合、componentでtarget属性を探します。target属性がない場合は、targetをデフォルト値headに設定します。getComponentResources(jakarta.faces.context.FacesContext, java.lang.String)を呼び出して、指定されたターゲットの子リストを取得します。componentResourceのコンポーネント ID が、すでに追加されているリソースの ID と一致する場合は、古いリソースを削除します。componentリソースをリストに追加します。
リソース
Rendererは、次のことを確認する必要があります。ResourceHandler.isResourceRendered(FacesContext, String, String)がtrueを返す場合はレンダリングしないでください。- レンダリング後、
ResourceHandler.markResourceRendered(FacesContext, String, String)を呼び出します。
- パラメーター:
context- 現在のリクエストのFacesContextcomponentResource-Resourceインスタンスを表すUIComponenttarget-UIComponentが追加されるファセットの名前- 導入:
- 2.0
getComponentResources
public ListSE<UIComponent> getComponentResources(FacesContext context, StringSE target)
提供された
targetアグリメントのUIComponentの変更不可能なListを返します。Listの各componentは、リソースインスタンスを表すと見なされます。デフォルトの実装では、次と同等のアルゴリズムを使用する必要があります。
targetを引数として使用してgetFacet()を呼び出すことにより、componentのファセットを見つけます。- ファセットが見つからない場合は、
context.getApplication().createComponent().を呼び出してファセットを作成します。このメソッドの引数は、UIPanelを継承し、encodeAll()メソッドをオーバーライドしてアクションを実行しないコンポーネントを参照する必要があります。これは、コンポーネントリソースが誤ってレンダリングされるのを防ぐために必要です。- ファセットの
idを、リテラル文字列 "jakarta_faces_location_" (引用符なし)をtarget引数の値の前に付加して作成された文字列に設定します。 targetをキーとして使用して、ファセットMapにファセットを追加します
- ファセットの
- ファセットの子を返します
- パラメーター:
context- Faces コンテキスト。target- コンポーネントが返されるファセットの名前。- 戻り値:
targetという名前のファセットのUIComponent子のList。ファセットの子が見つからない場合は、Collections.emptyList()を返します。- 例外:
NullPointerExceptionSE-targetまたはcontextがnullの場合- 導入:
- 2.0
getComponentResources
public ListSE<UIComponent> getComponentResources(FacesContext context)
サポートされているすべてのターゲットのすべての
UIComponentリソースの変更不可能な順序付きListを返します。Listの各componentは、リソースインスタンスを表すと見なされます。順序は、リソースがコンポーネントツリーに表示されるのと同じです。- パラメーター:
context- Faces コンテキスト。- 戻り値:
- サポートされているすべてのターゲットのすべての
UIComponentリソースのList。リソースが見つからない場合は、空のListを返します。 - 例外:
NullPointerExceptionSE-contextがnullの場合。- 導入:
- 2.3
removeComponentResource
public void removeComponentResource(FacesContext context, UIComponent componentResource)
このビューのリソースとして、リソースインスタンスを表すと想定されている引数
componentを削除します。- パラメーター:
context- 現在のリクエストのFacesContextcomponentResource-Resourceインスタンスを表すUIComponent- 導入:
- 2.0
removeComponentResource
public void removeComponentResource(FacesContext context, UIComponent componentResource, StringSE target)
このビューのリソースとして、リソースインスタンスを表すと想定される引数
componentを削除します。リソースインスタンスは、標準 HTML RenderKit に従って、リソースRendererによってレンダリングされます。componentは、次のアルゴリズムを使用して削除する必要があります。target引数がnullの場合、componentでtarget属性を探します。
target属性がない場合は、targetをデフォルト値headに設定します。getComponentResources(jakarta.faces.context.FacesContext, java.lang.String)を呼び出して、指定されたターゲットの子リストを取得します。- 子リストから
componentリソースを削除します。
- パラメーター:
context- 現在のリクエストのFacesContextcomponentResource-Resourceインスタンスを表すUIComponenttarget-UIComponentが追加されるファセットの名前- 導入:
- 2.0
queueEvent
public void queueEvent(FacesEvent event)
デフォルトの
UIComponentBase.queueEvent(jakarta.faces.event.FacesEvent)動作をオーバーライドして、後でブロードキャストするためにキューに入れられたイベントを累積します。- オーバーライド:
- クラス
UIComponentBaseのqueueEvent - パラメーター:
event- キューに入れられるFacesEvent- 例外:
IllegalStateExceptionSE- このコンポーネントがUIViewRootの子孫でない場合NullPointerExceptionSE-eventがnullの場合
broadcastEvents
public void broadcastEvents(FacesContext context, PhaseId phaseId)
キューに入れられたイベントをブロードキャストします。
PhaseId.ANY_PHASEのキューに入れられた最初のブロードキャストイベント。次に、現在のフェーズでキューに入れられたイベントをブロードキャストします。どちらの場合も、例外の場合でも、イベントがブロードキャストされる前にUIComponent.pushComponentToEL(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent)を呼び出す必要があり、ブロードキャストから戻った後にUIComponent.popComponentFromEL(jakarta.faces.context.FacesContext)を呼び出す必要があります。- パラメーター:
context- 現在のリクエストのFacesContextphaseId- 現在のフェーズのPhaseId- 導入:
- 2.0
processRestoreState
public void processRestoreState(FacesContext context, ObjectSE state)
デフォルトの実装は
tryブロック内からUIComponentBase.processRestoreState(jakarta.faces.context.FacesContext, java.lang.Object)を呼び出す必要があります。tryブロックには、FacesEventがイベントキューに残らないようにするfinallyブロックが必要です。- オーバーライド:
- クラス
UIComponentBaseのprocessRestoreState - パラメーター:
context- この requets のFacesContextstate-StateManagerから取得した不透明状態オブジェクト
processEvent
public void processEvent(ComponentSystemEvent event) throws AbortProcessingException
引数
eventがPostRestoreStateEventのインスタンスであり、PartialViewContext.isPartialRequest()がtrueを返す場合、すべてのコンポーネントリソースをループし、それぞれに対してResourceHandler.markResourceRendered(FacesContext, String, String)を呼び出します。最後に、スーパーに委譲します。- 次で指定:
- インターフェース
ComponentSystemEventListenerのprocessEvent - オーバーライド:
- クラス
UIComponentのprocessEvent - パラメーター:
event- 処理中のComponentSystemEventインスタンス。- 例外:
AbortProcessingException- このリクエストでライフサイクル処理を停止するかどうか。
processDecodes
public void processDecodes(FacesContext context)
次の場合は、
PhaseId.APPLY_REQUEST_VALUESでPartialViewContext.processPartial(jakarta.faces.event.PhaseId)を呼び出して、部分処理を実行します。PartialViewContext.isPartialRequest()はtrueを返しますが、ビュー内のすべてのコンポーネントを処理するリクエストはありません。(PartialViewContext.isExecuteAll()はfalseを返します)
UIComponentBase.processDecodes(jakarta.faces.context.FacesContext)を呼び出して完全な処理を実行します。PartialViewContext.isPartialRequest()はtrueを返し、ビュー内のすべてのコンポーネントを処理するようにリクエストされています (PartialViewContext.isExecuteAll()はtrueを返します)PartialViewContext.isPartialRequest()はfalseを返します
デフォルトの
UIComponentBase.processDecodes(jakarta.faces.context.FacesContext)動作をオーバーライドして、デフォルトの処理または部分的な処理が完了した後にキューに入れられたイベントをブロードキャストし、このフェーズのイベント処理によってFacesContext.renderResponse()またはFacesContext.responseComplete()が呼び出された場合は、後のフェーズのイベントをクリアします。- オーバーライド:
- クラス
UIComponentBaseのprocessDecodes - パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合
resetValues
public void resetValues(FacesContext context, CollectionSE<StringSE> clientIds)
clientIds にアクセスし、コンポーネントが
EditableValueHolderのインスタンスである場合は、そのEditableValueHolder.resetValue()メソッドを呼び出します。アクセスにはUIComponent.visitTree(jakarta.faces.component.visit.VisitContext, jakarta.faces.component.visit.VisitCallback)を使用します。- パラメーター:
context- 処理中のリクエストのFacesContext。clientIds- 説明されているアクションが実行される、訪問されるクライアント ID。- 導入:
- 2.2
encodeBegin
public void encodeBegin(FacesContext context) throws IOExceptionSE
デフォルトの
UIComponentBase.encodeBegin(jakarta.faces.context.FacesContext)の動作をオーバーライドします。getBeforePhaseListener()がnull以外を返す場合は、それを呼び出して、PhaseId.RENDER_RESPONSEフェーズのPhaseEventを渡します。addPhaseListener(jakarta.faces.event.PhaseListener)の呼び出しによって生成された内部リストが空でない場合は、そのリスト内のすべてのリスナーのPhaseListener.beforePhase(jakarta.faces.event.PhaseEvent)メソッドを呼び出して、PhaseEventを渡す必要があります。beforePhase リスナーの呼び出し中に発生したExceptionはすべて、VIEWROOT_PHASE_LISTENER_QUEUES_EXCEPTIONS_PARAM_NAMEパラメーターが設定されていない限り、ログに記録して取り込む必要があります。その場合は、ExceptionもExceptionHandlerに渡す必要があります。- オーバーライド:
- クラス
UIComponentBaseのencodeBegin - パラメーター:
context-FacesContextは作成中のレスポンス- 例外:
IOExceptionSE- レンダリング中に入出力エラーが発生した場合
encodeChildren
public void encodeChildren(FacesContext context) throws IOExceptionSE
PartialViewContext.isAjaxRequest()がtrueを返す場合は、PhaseId.RENDER_RESPONSEを指定してPartialViewContext.processPartial(jakarta.faces.event.PhaseId)を呼び出して部分レンダリングを実行します。PartialViewContext.isAjaxRequest()がfalseを返す場合は、親UIComponentBase.encodeChildren(jakarta.faces.context.FacesContext)メソッドに委譲します。この
UIViewRootがNamingContainerのインスタンスである場合、Jakarta Faces 実装は、UIComponent.getClientId(FacesContext)の規則に従って、エンコードされたすべての POST リクエストパラメーター名の前にUIComponent.getContainerClientId(FacesContext)が付いていることを確認する必要があります。これには、以下にリストされているすべての事前定義された POST リクエストパラメーターも含まれます。ResponseStateManager.VIEW_STATE_PARAMResponseStateManager.CLIENT_WINDOW_PARAMResponseStateManager.RENDER_KIT_ID_PARAMClientBehaviorContext.BEHAVIOR_SOURCE_PARAM_NAMEClientBehaviorContext.BEHAVIOR_EVENT_PARAM_NAMEPartialViewContext.PARTIAL_EVENT_PARAM_NAMEPartialViewContext.PARTIAL_EXECUTE_PARAM_NAMEPartialViewContext.PARTIAL_RENDER_PARAM_NAMEPartialViewContext.RESET_VALUES_PARAM_NAME
- オーバーライド:
- クラス
UIComponentBaseのencodeChildren - パラメーター:
context-FacesContextは作成中のレスポンス- 例外:
IOExceptionSE- レンダリング中に入出力エラーが発生した場合- 導入:
- 2.0
encodeEnd
public void encodeEnd(FacesContext context) throws IOExceptionSE
getAfterPhaseListener()が非 nullを返す場合は、それを呼び出し、PhaseId.RENDER_RESPONSEフェーズのPhaseEventを渡します。afterPhase リスナーの呼び出し中に発生するすべてのExceptionは、VIEWROOT_PHASE_LISTENER_QUEUES_EXCEPTIONS_PARAM_NAMEパラメーターが設定されていない限り、ログに記録して取り込む必要があります。その場合、ExceptionもExceptionHandlerに渡す必要があります。現在のビューにビューパラメーターがある場合 (空でなく、UnsupportedOperationExceptionをスローする非ViewDeclarationLanguage.getViewMetadata(jakarta.faces.context.FacesContext, String)の戻り値によって示される)、各パラメーターでUIViewParameter.encodeAll(jakarta.faces.context.FacesContext)を呼び出します。getViewParameters()の呼び出しによってUnsupportedOperationExceptionがスローされる場合は、例外を暗黙的に取り込む必要があります。- オーバーライド:
- クラス
UIComponentBaseのencodeEnd - パラメーター:
context-FacesContextは作成中のレスポンス- 例外:
IOExceptionSE- レンダリング中に入出力エラーが発生した場合
getRendersChildren
public boolean getRendersChildren()
UIComponentBase.getRendersChildren()を呼び出すPartialViewContext.isAjaxRequest()がtrueを返す場合、このメソッドはtrueを返す必要があります。- オーバーライド:
- クラス
UIComponentBaseのgetRendersChildren - 戻り値:
- コンポーネントが子をレンダリングする場合は
true、それ以外の場合はfalse。 - 導入:
- 2.0
processValidators
public void processValidators(FacesContext context)
次の場合は、
PhaseId.PROCESS_VALIDATIONSでPartialViewContext.processPartial(jakarta.faces.event.PhaseId)を呼び出して、部分処理を実行します。PartialViewContext.isPartialRequest()はtrueを返しますが、ビュー内のすべてのコンポーネントを処理するリクエストはありません。(PartialViewContext.isExecuteAll()はfalseを返します)
UIComponentBase.processValidators(jakarta.faces.context.FacesContext)を呼び出して完全な処理を実行します。PartialViewContext.isPartialRequest()はtrueを返し、ビュー内のすべてのコンポーネントを処理するようにリクエストされています (PartialViewContext.isExecuteAll()はtrueを返します)PartialViewContext.isPartialRequest()はfalseを返します
デフォルトの
UIComponentBase.processValidators(jakarta.faces.context.FacesContext)動作をオーバーライドして、デフォルトの処理または部分的な処理が完了した後にキューに入れられたイベントをブロードキャストし、このフェーズのイベント処理によってFacesContext.renderResponse()またはFacesContext.responseComplete()が呼び出された場合は、後のフェーズのイベントをクリアします。- オーバーライド:
- クラス
UIComponentBaseのprocessValidators - パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合- 関連事項:
PreValidateEvent,PostValidateEvent
processUpdates
public void processUpdates(FacesContext context)
次の場合は、
PhaseId.UPDATE_MODEL_VALUESでPartialViewContext.processPartial(jakarta.faces.event.PhaseId)を呼び出して、部分処理を実行します。PartialViewContext.isPartialRequest()はtrueを返しますが、ビュー内のすべてのコンポーネントを処理するリクエストはありません。(PartialViewContext.isExecuteAll()はfalseを返します)
UIComponentBase.processUpdates(jakarta.faces.context.FacesContext)を呼び出して完全な処理を実行します。PartialViewContext.isPartialRequest()はtrueを返し、ビュー内のすべてのコンポーネントを処理するようにリクエストされています (PartialViewContext.isExecuteAll()はtrueを返します)PartialViewContext.isPartialRequest()はfalseを返します
デフォルトの
UIComponentBase動作をオーバーライドして、デフォルトの処理または部分的な処理が完了した後にキューに入れられたイベントをブロードキャストし、このフェーズのイベント処理によってFacesContext.renderResponse()またはFacesContext.responseComplete()が呼び出された場合は、後のフェーズのイベントをクリアします。- オーバーライド:
- クラス
UIComponentBaseのprocessUpdates - パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合
processApplication
public void processApplication(FacesContext context)
リクエスト処理ライフサイクルのアプリケーションの呼び出しフェーズでキューに入れられたイベントをブロードキャストし、このフェーズのイベント処理によって
FacesContext.renderResponse()またはFacesContext.responseComplete()が呼び出された場合は、後のフェーズのイベントをすべてクリアします。- パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合
createUniqueId
public StringSE createUniqueId()
コンポーネントの識別子を生成します。識別子には接頭辞 UNIQUE_ID_PREFIX が付けられ、 この UIViewRoot の非
NamingContainer子サブツリー内で一意になります。- 戻り値:
- 識別子。
createUniqueId
public StringSE createUniqueId(FacesContext context, StringSE seed)
コンポーネントの識別子を生成します。識別子には接頭辞 UNIQUE_ID_PREFIX が付けられ、この UIViewRoot 内で一意になります。オプションで、一意のシード値をコンポーネント作成者が提供できます。これは、生成された一意の ID に含める必要があります。
- 次で指定:
- インターフェース
UniqueIdVendorのcreateUniqueId - パラメーター:
context- FacesContextseed- オプションのシード値 - 例 VDL テンプレート内のコンポーネントの位置に基づく- 戻り値:
- このコンポーネントコンテナーの一意の ID
getLocale
public LocaleSE getLocale()
このビュー用に作成されているレスポンスのローカライズに使用する
Localeを返します。アルゴリズム:
localeivar がある場合は、それを返します。「ロケール」の値式がある場合は、その値を取得します。値がnullの場合、ViewHandler.calculateLocale(jakarta.faces.context.FacesContext)を呼び出した結果を返します。値がjava.util.Localeのインスタンスである場合は、それを返します。値が文字列の場合は、java.util.Localeに変換して返します。"locale" の値式がない場合は、ViewHandler.calculateLocale(jakarta.faces.context.FacesContext)を呼び出した結果を返します。- 戻り値:
- 上記のアルゴリズムを実行して取得した現在の
Locale。
setLocale
public void setLocale(LocaleSE locale)
このビューに対して作成されているレスポンスのローカライズに使用する
Localeを設定します。- パラメーター:
locale- 新しいローカライゼーションロケール
getViewMap
public MapSE<StringSE,ObjectSE> getViewMap()
この実装は、
trueを引数として渡してgetViewMap(boolean)を呼び出すだけで、結果を返します。- 戻り値:
- ビューマップ、または
null。 - 導入:
- 2.0
getViewMap
public MapSE<StringSE,ObjectSE> getViewMap(boolean create)
「ビュースコープ」であるデータストアへのインターフェースとして機能する
Mapを返します。または、このインスタンスにそのようなMapがなく、create引数がtrueの場合は、Mapを作成して返します。このマップは、遅延してインスタンス化され、このUIViewRootインスタンスでこのメソッドへの後続の呼び出しから返されるようにキャッシュされる必要があります。Application.publishEvent(jakarta.faces.context.FacesContext, java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Object)を呼び出す必要があり、現在のFacesContextを最初の引数として、PostConstructViewMapEvent.classを 2 番目の引数として、UIViewRoot.classを 3 番目の引数として、このUIViewRootインスタンスを 4 番目の引数として渡します。UIViewRootがカスタムクラスで拡張された場合を考慮して、UIViewRoot.class引数を渡す必要があります。返された
Mapは、Mapでclear()を呼び出すと、Application.publishEvent(jakarta.faces.context.FacesContext, java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Object)が呼び出され、PreDestroyViewMapEvent.classが最初の引数として渡され、このUIViewRootインスタンスが 2 番目の引数として渡されるように実装する必要があります。アプリケーションの構成によっては、ビューマップに保存されるオブジェクトは
Serializableである必要がある場合があります。一般に、ビューマップに格納されているオブジェクトがSerializableであることを確認することをお勧めします。ViewScopedで明らかにされた理由により、このマップは最終的にセッションに保存する必要があります。このため、create引数のtrue値は、ExternalContext.getSession(boolean)の呼び出しでセッションを強制的に作成します。clear()メソッドを呼び出す必要がある場合の仕様については、FacesContext.setViewRoot(jakarta.faces.component.UIViewRoot)を参照してください。- パラメーター:
create- 必要に応じて、このインスタンスの新しいMapを作成するtrue。現在のMapがない場合にnullを返すfalse。- 戻り値:
- ビューマップ、または
null。 - 導入:
- 2.0
subscribeToViewEvent
public void subscribeToViewEvent(ClassSE<? extends SystemEvent> systemEvent, SystemEventListener listener)
引数
listenerによって参照されるリスナーインスタンスを、型systemEventClassのイベントのリスナーとしてUIViewRootにインストールします。インストールされたリスナーは、
UIViewRootの状態の一部として維持されないことに注意してください。- パラメーター:
systemEvent-listenerを発生させる必要があるイベントのClasslistener- 型systemEventClassのイベントが発生したときにSystemEventListener.processEvent(jakarta.faces.event.SystemEvent)メソッドを呼び出す必要があるSystemEventListenerの実装。- 例外:
NullPointerExceptionSE-systemEventClassまたはlistenerがnullの場合。- 導入:
- 2.0
unsubscribeFromViewEvent
public void unsubscribeFromViewEvent(ClassSE<? extends SystemEvent> systemEvent, SystemEventListener listener)
型
systemEventClassのイベントのリスナーとして、引数listenerによって参照されるリスナーインスタンスをUIViewRootから削除します。- パラメーター:
systemEvent-listenerを発生させる必要があるイベントのClasslistener- 型systemEventClassのイベントが発生したときにSystemEventListener.processEvent(jakarta.faces.event.SystemEvent)メソッドを呼び出す必要があるSystemEventListenerの実装。- 例外:
NullPointerExceptionSE-systemEventClassまたはlistenerがnullの場合。- 導入:
- 2.0
getViewListenersForEventClass
public ListSE<SystemEventListener> getViewListenersForEventClass(ClassSE<? extends SystemEvent> systemEvent)
型
eventClassのイベントに関心のある、このUIComponentインスタンスに登録されているSystemEventListenerインスタンスを返します。- パラメーター:
systemEvent- リスナーを返す必要があるイベントのClass- 戻り値:
- ビューリスナーのコレクション。
- 例外:
NullPointerExceptionSE- 引数systemEventがnullの場合。- 導入:
- 2.0
restoreViewScopeState
public void restoreViewScopeState(FacesContext context, ObjectSE state)
ViewScope 状態を復元します。これは、コンポーネントツリーの構築元のテンプレートで EL 式にビュースコープの Bean を使用できるようにするために必要です。例:
<ui:include src="#{viewScopedBean.includeFileName}"/>。- パラメーター:
context- 現在の FacesContext。state- 状態オブジェクト。
saveState
public ObjectSE saveState(FacesContext context)
インターフェースからコピーされた説明:StateHolderインスタンスの状態を
Serializableオブジェクトとして取得します。このインターフェースを実装するクラスが、StateHolder を実装するインスタンス(イベントハンドラー、バリデーターなどを含む
UIComponentなど)への参照を持っている場合、このメソッドはそれらすべてのインスタンスでStateHolder.saveState(jakarta.faces.context.FacesContext)メソッドも呼び出す必要があります。このメソッドは、子とファセットの状態を保存してはなりませんそれはStateManagerを介して行われますこのメソッドは、実装オブジェクトの状態を変更してはなりません。つまり、このコードを実行した後:
Object state = component.saveState(facesContext);componentは、実行前と同じでなければなりません。このメソッドからの戻り値は
Serializableでなければなりません- 次で指定:
- インターフェース
StateHolderのsaveState - オーバーライド:
- クラス
UIComponentBaseのsaveState - パラメーター:
context- Faces コンテキスト。- 戻り値:
- 保存された状態。
restoreState
public void restoreState(FacesContext context, ObjectSE state)
インターフェースからコピーされた説明:StateHolderstate オブジェクトのエントリから状態を復元するために必要な処理を実行します。
このインターフェースを実装するクラスが、StateHolder も実装するインスタンスへの参照を持っている場合(イベントハンドラー、バリデーターなどを備えた
UIComponentなど)、このメソッドはそれらすべてのインスタンスでStateHolder.restoreState(jakarta.faces.context.FacesContext, java.lang.Object)メソッドも呼び出す必要があります。state引数がnullの場合、アクションを実行せずに戻ります。- 次で指定:
- インターフェース
StateHolderのrestoreState - オーバーライド:
- クラス
UIComponentBaseのrestoreState - パラメーター:
context- Faces コンテキスト。state- 状態。