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