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 Server 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)
を参照してください。
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | CLIENT_WINDOW_MODE_PARAM_NAME
|
コンストラクターと説明 |
---|
ClientWindow() |
修飾子と型 | メソッドと説明 |
---|---|
abstract void | decode(FacesContext context) 実装は、受信リクエストを調べ、 |
void | disableClientWindowRenderMode(FacesContext context) 生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、これらの URL をレンダリングする前に、まずこのメソッドを呼び出す必要があります。 |
void | enableClientWindowRenderMode(FacesContext context) 生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、それらの URL をレンダリングした後、最初にこのメソッドを呼び出す必要があります。 |
abstract StringSE | getId() 現在のセッションのスコープ内でこの |
abstract MapSE<StringSE, StringSE> | getQueryURLParameters(FacesContext context) このメソッドは、クライアントウィンドウ関連のパラメーターを URL に挿入する必要があるランタイムによって URL が生成されるたびに呼び出されます。 |
boolean | isClientWindowRenderModeEnabled(FacesContext context) 生成された URL に ClientWindow を追加するメソッドは、このメソッドを呼び出して、許可されているかどうかを確認する必要があります。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public abstract MapSE<StringSE,StringSE> getQueryURLParameters(FacesContext context)
このメソッドは、クライアントウィンドウ関連のパラメーターを URL に挿入する必要があるランタイムによって URL が生成されるたびに呼び出されます。これにより、カスタム ClientWindow
実装が、ハイパーリンクのレンダリングなど、URL が生成される場合にクライアントウィンドウ固有の追加情報を挿入する機会が与えられることが保証されます。返されるマップは不変である必要があります。このメソッドのデフォルト実装は空のマップを返します。
context
- このリクエストの FacesContext
null
または URL クエリ文字列に挿入するパラメーターのマップ。public abstract StringSE getId()
現在のセッションのスコープ内でこの ClientWindow
を一意に識別する文字列値を返します。この値の導出方法の仕様については、decode(jakarta.faces.context.FacesContext)
を参照してください。
ClientWindow
の ID 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
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
public void enableClientWindowRenderMode(FacesContext context)
生成された URL での ClientWindow の追加の使用ごとの無効化を許可するコンポーネントは、それらの URL をレンダリングした後、最初にこのメソッドを呼び出す必要があります。CLIENT_WINDOW_MODE_PARAM_NAME
が引用符なしの "url" の場合、GET リクエストを引き起こすすべての生成された URL は、デフォルトで ClientWindow を追加する必要があります。コールサイトは実際の ClientWindow
インスタンスにアクセスせずにアクセスする必要があるため、これは静的メソッドとして指定されています。
context
- このリクエストの FacesContext
public boolean isClientWindowRenderModeEnabled(FacesContext context)
生成された URL に ClientWindow を追加するメソッドは、このメソッドを呼び出して、許可されているかどうかを確認する必要があります。CLIENT_WINDOW_MODE_PARAM_NAME
が引用符なしの "url" の場合、GET リクエストを引き起こすすべての生成された URL は、デフォルトで ClientWindow を追加する必要があります。コールサイトは実際の ClientWindow
インスタンスにアクセスせずにアクセスする必要があるため、これは静的メソッドとして指定されています。
context
- このリクエストの FacesContext
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.