クラス ClientWindow
- java.lang.ObjectSE
-
- jakarta.faces.lifecycle.ClientWindow
- 既知の直属サブクラス
ClientWindowWrapper
public abstract class ClientWindow extends ObjectSE
このクラスは、クライアントウィンドウを表します。これは、ブラウザータブ、ブラウザーウィンドウ、ブラウザーポップアップ、ポートレット、
UIViewRootをルートとするUIComponent階層を表示できるその他のものです。動作モード
なしモード
ClientWindowの生成は、CLIENT_WINDOW_MODE_PARAM_NAMEの値で指定されたcontext-paramの値によって制御されます。このcontext-paramが指定されていない場合、またはその値が "none" の場合、ClientWindowインスタンスは生成されず、アプリケーション全体で機能全体が事実上無効になります。その他のモード
この機能をサポートするために可能な限り幅広い実装の選択肢に対応するために、"none" および "url" 以外のモードの明示的な名前は指定されていません。ただし、
CLIENT_WINDOW_MODE_PARAM_NAMEのすべての値について、ClientWindowの存続期間は、特定のクライアントウィンドウ(またはタブ、ポップアップなど)から Jakarta Faces ランタイムに対して行われた最初のリクエストから始まり、そのウィンドウが開いたままであるか、セッションは、どちらか早い方で期限切れになります。クライアントウィンドウは、常に一度に 1 つのUIViewRootインスタンスに関連付けられますが、その存続期間中に多くの異なるUIViewRootを表示する場合があります。ClientWindowインスタンスは、Lifecycle.attachWindow(jakarta.faces.context.FacesContext)メソッド中に受信リクエストに関連付けられます。このメソッドにより、ClientWindowの新しいインスタンスが作成され、ID が割り当てられ、ExternalContext.setClientWindow(jakarta.faces.lifecycle.ClientWindow)に渡されます。状態の保存中、ウィンドウ ID モードまたは状態保存モードに関係なく、ajax および non-ajax リクエストの場合、名前、ID、値が
ResponseStateManager.CLIENT_WINDOW_PARAMで指定されている非表示フィールドを書き込む必要があります。すでに説明した隠しフィールドに加えて。ランタイムは、クリックされたときにユーザーエージェントが Faces サーバーに GET リクエストを送信するようにするハイパーリンクをレンダリングするすべてのコンポーネントに、
ResponseStateManager.CLIENT_WINDOW_URL_PARAMで指定された名前と値のクエリパラメーターがあることを確認する必要があります。この要件は、ExternalContextのいくつかの「エンコード」メソッドによって満たされます。詳細については、ExternalContext.encodeActionURL(java.lang.String)を参照してください。- 導入:
- 2.2
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringSECLIENT_WINDOW_MODE_PARAM_NAMEClientWindow機能の動作を制御する context-param。static StringSENUMBER_OF_CLIENT_WINDOWS_PARAM_NAMEClientWindowScopedで使用される ClientWindows の最大数を示します。
コンストラクターの概要
コンストラクター コンストラクター 説明 ClientWindow()
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract voiddecode(FacesContext context)実装は、受信リクエストを調べ、getId()メソッドから返される必要がある値を抽出する必要があります。voiddisableClientWindowRenderMode(FacesContext context)生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、これらの URL をレンダリングする前に、まずこのメソッドを呼び出す必要があります。voidenableClientWindowRenderMode(FacesContext context)生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、それらの URL をレンダリングした後、最初にこのメソッドを呼び出す必要があります。abstract StringSEgetId()現在のセッションのスコープ内でこのClientWindowを一意に識別する文字列値を返します。abstract MapSE<StringSE,StringSE>getQueryURLParameters(FacesContext context)このメソッドは、クライアントウィンドウ関連のパラメーターを URL に挿入する必要があるランタイムによって URL が生成されるたびに呼び出されます。booleanisClientWindowRenderModeEnabled(FacesContext context)生成された URL に ClientWindow を追加するメソッドは、このメソッドを呼び出して、許可されているかどうかを確認する必要があります。
フィールドの詳細
CLIENT_WINDOW_MODE_PARAM_NAME
public static final StringSE CLIENT_WINDOW_MODE_PARAM_NAME
ClientWindow機能の動作を制御する context-param。ランタイムは、引用符なしで値 "none" および "url" をサポートする必要がありますが、他の値も可能です。指定されていない場合、または値が実装によって理解されていない場合は、"none" が想定されます。- 導入:
- 2.2
- 関連事項:
- 定数フィールド値
NUMBER_OF_CLIENT_WINDOWS_PARAM_NAME
public static final StringSE NUMBER_OF_CLIENT_WINDOWS_PARAM_NAME
ClientWindowScopedで使用される ClientWindows の最大数を示します。jakarta.faces.CLIENT_WINDOW_MODE が有効になっている場合にのみアクティブになります。- 導入:
- 4.0
- 関連事項:
- 定数フィールド値
メソッドの詳細
getQueryURLParameters
public abstract MapSE<StringSE,StringSE> getQueryURLParameters(FacesContext context)
このメソッドは、クライアントウィンドウ関連のパラメーターを URL に挿入する必要があるランタイムによって URL が生成されるたびに呼び出されます。これにより、カスタム
ClientWindow実装が、ハイパーリンクのレンダリングなど、URL が生成される場合にクライアントウィンドウ固有の追加情報を挿入する機会が与えられることが保証されます。返されるマップは不変である必要があります。このメソッドのデフォルト実装は空のマップを返します。- パラメーター:
context- このリクエストのFacesContext- 戻り値:
nullまたは URL クエリ文字列に挿入するパラメーターのマップ。- 導入:
- 2.2
getId
public abstract StringSE getId()
現在のセッションのスコープ内でこの
ClientWindowを一意に識別する文字列値を返します。この値の導出方法の仕様については、decode(jakarta.faces.context.FacesContext)を参照してください。- 戻り値:
ClientWindowの ID- 導入:
- 2.2
decode
public abstract void decode(FacesContext context)
実装は、受信リクエストを調べ、
getId()メソッドから返される必要のある値を抽出する責任があります。CLIENT_WINDOW_MODE_PARAM_NAMEが "none" の場合、このメソッドを呼び出さないでください。CLIENT_WINDOW_MODE_PARAM_NAMEが "url" の場合、実装は最初にResponseStateManager.CLIENT_WINDOW_PARAMの値で指定された名前でリクエストパラメーターを探す必要があります。値が見つからない場合は、ResponseStateManager.CLIENT_WINDOW_URL_PARAMの値で指定された名前でリクエストパラメーターを探します。値が見つからない場合は、現在のセッションのスコープ内でこのClientWindowを一意に識別する ID を作成します。この値は、getId()メソッドから返すために使用可能にする必要があります。値は、非表示フィールドまたはクエリパラメーターとして含めるのに適している必要があります。値が見つかった場合は、セッションのキーを使用して値を復号化し、getId()からの戻りに使用できるようにします。- パラメーター:
context- このリクエストのFacesContext- 導入:
- 2.2
disableClientWindowRenderMode
public void disableClientWindowRenderMode(FacesContext context)
生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、これらの URL をレンダリングする前に、まずこのメソッドを呼び出す必要があります。呼び出し元は、URL のレンダリング後に
finallyブロックからenableClientWindowRenderMode(jakarta.faces.context.FacesContext)を呼び出す必要があります。CLIENT_WINDOW_MODE_PARAM_NAMEが引用符なしの "url" の場合、GET リクエストを引き起こす生成されたすべての URL は、デフォルトで ClientWindow を追加する必要があります。コールサイトは実際のClientWindowインスタンスにアクセスせずにアクセスする必要があるため、これは静的メソッドとして指定されています。- パラメーター:
context- このリクエストのFacesContext- 導入:
- 2.2
enableClientWindowRenderMode
public void enableClientWindowRenderMode(FacesContext context)
生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、それらの URL をレンダリングした後、最初にこのメソッドを呼び出す必要があります。
CLIENT_WINDOW_MODE_PARAM_NAMEが引用符なしの "url" の場合、GET リクエストを引き起こすすべての生成された URL は、デフォルトで ClientWindow を追加する必要があります。コールサイトは実際のClientWindowインスタンスにアクセスせずにアクセスする必要があるため、これは静的メソッドとして指定されています。- パラメーター:
context- このリクエストのFacesContext- 導入:
- 2.2
isClientWindowRenderModeEnabled
public boolean isClientWindowRenderModeEnabled(FacesContext context)
生成された URL に ClientWindow を追加するメソッドは、このメソッドを呼び出して、許可されているかどうかを確認する必要があります。
CLIENT_WINDOW_MODE_PARAM_NAMEが引用符なしの "url" の場合、GET リクエストを引き起こすすべての生成された URL は、デフォルトで ClientWindow を追加する必要があります。コールサイトは実際のClientWindowインスタンスにアクセスせずにアクセスする必要があるため、これは静的メソッドとして指定されています。- パラメーター:
context- このリクエストのFacesContext- 戻り値:
- 上記の結果
- 導入:
- 2.2