クラス 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 StringSE
CLIENT_WINDOW_MODE_PARAM_NAME
ClientWindow
機能の動作を制御する context-param。static StringSE
NUMBER_OF_CLIENT_WINDOWS_PARAM_NAME
ClientWindowScoped
で使用される ClientWindows の最大数を示します。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ClientWindow()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract void
decode(FacesContext context)
実装は、受信リクエストを調べ、getId()
メソッドから返される必要がある値を抽出する必要があります。void
disableClientWindowRenderMode(FacesContext context)
生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、これらの URL をレンダリングする前に、まずこのメソッドを呼び出す必要があります。void
enableClientWindowRenderMode(FacesContext context)
生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、それらの URL をレンダリングした後、最初にこのメソッドを呼び出す必要があります。abstract StringSE
getId()
現在のセッションのスコープ内でこのClientWindow
を一意に識別する文字列値を返します。abstract MapSE<StringSE,StringSE>
getQueryURLParameters(FacesContext context)
このメソッドは、クライアントウィンドウ関連のパラメーターを URL に挿入する必要があるランタイムによって URL が生成されるたびに呼び出されます。boolean
isClientWindowRenderModeEnabled(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