クラス SearchExpressionHandler
- java.lang.ObjectSE
-
- jakarta.faces.component.search.SearchExpressionHandler
- 既知の直属サブクラス
SearchExpressionHandlerWrapper
public abstract class SearchExpressionHandler extends ObjectSE
SearchExpressionHandler は、検索式の解決を担当します検索式は、識別子(
UIComponent
のid
プロパティと完全に一致するか、キーワード(@this
や@form
など))、UINamingContainer.getSeparatorChar(jakarta.faces.context.FacesContext)
文字値によってリンクされた一連のそのような識別子とキーワードで構成されます。SearchKeywordResolver
を参照してください。サポートされているキーワードのリスト。検索アルゴリズムは次のように動作する必要がありますが、最終結果が同じである限り、代替のアルゴリズムを使用できます。- 検索のベースとなる
UIComponent
を特定します。- 検索式が区切り文字で始まる場合(「絶対」検索式と呼ばれます)、ベースは
UIViewRoot
になります。先頭の区切り文字は削除され、検索式の残りの部分は、以下で説明する「相対」検索式として扱われます。 - それ以外の場合は、
SearchExpressionContext.getSource()
が使用されます。
- 検索式が区切り文字で始まる場合(「絶対」検索式と呼ばれます)、ベースは
- 検索式(前の手順で変更された可能性があります)は、「相対」検索式になり、識別子やキーワードに基づいてコンポーネント(ある場合)を検索するために使用されます。
- 式は
UINamingContainer.getSeparatorChar(jakarta.faces.context.FacesContext)
によって「コマンド」に分割されます。コマンドは 1 つずつ解決されます。最初のコマンドでは、前述のようにソースコンポーネントを使用して検索を開始します。以降のすべてのコマンドでは、前のコマンドからの前の解決済みコンポーネントがルックアップの開始に使用されます。 - コマンドが
KEYWORD_PREFIX
で始まる場合、キーワードと見なされ、SearchKeywordResolver
がキーワードの解決に使用されます。 - それ以外の場合、コマンドが
KEYWORD_PREFIX
で始まらないと、コンポーネントはコンポーネント ID に基づいて解決されます。
- 式は
- 導入:
- 2.3
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 protected static char[]
EXPRESSION_SEPARATOR_CHARS
一連の式で式を区切るために使用されるデフォルトの文字。static StringSE
KEYWORD_PREFIX
キーワードを識別するための接頭辞。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 SearchExpressionHandler()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 char[]
getExpressionSeperatorChars(FacesContext context)
一連の式で式を区切るために使用される文字を返します。abstract void
invokeOnComponent(SearchExpressionContext searchExpressionContext, UIComponent previous, StringSE expression, ContextCallback callback)
指定された式の複数のUIComponent
を解決します。void
invokeOnComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)
指定された式の複数のUIComponent
を解決します。abstract boolean
isPassthroughExpression(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式が「パススルー式」かどうかを確認します。abstract boolean
isValidExpression(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式が有効な式であるかどうかを確認します。abstract StringSE
resolveClientId(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式に対して単一の clientId またはパススルー式に解決されます。abstract ListSE<StringSE>
resolveClientIds(SearchExpressionContext searchExpressionContext, StringSE expressions)
指定された式に対して、clientIds またはパススルー式を使用してList
SE に解決します。abstract void
resolveComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)
指定された式の単一のUIComponent
を解決します。abstract void
resolveComponents(SearchExpressionContext searchExpressionContext, StringSE expressions, ContextCallback callback)
指定された式の複数のUIComponent
を解決します。abstract StringSE[]
splitExpressions(FacesContext context, StringSE expressions)
可能性のある複数の式を持つgetExpressionSeperatorChars(jakarta.faces.context.FacesContext)
に基づいて、文字列を配列に分割します。
メソッドの詳細
resolveClientId
public abstract StringSE resolveClientId(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式に対して単一の clientId またはパススルー式に解決されます。
- パラメーター:
searchExpressionContext
-SearchExpressionContext
expression
- 検索式- 戻り値:
- 解決された clientId またはパススルー式。式を解決できず、
SearchExpressionHint.IGNORE_NO_RESULT
が渡された場合は、null
が返されます。 - 例外:
ComponentNotFoundException
- 式を解決できない場合、およびSearchExpressionHint.IGNORE_NO_RESULT
が渡されなかった場合。FacesException
- 式が無効な場合。- 導入:
- 2.3
resolveClientIds
public abstract ListSE<StringSE> resolveClientIds(SearchExpressionContext searchExpressionContext, StringSE expressions)
指定された式に対して、clientIds またはパススルー式を使用して
List
SE に解決します。式はsplitExpressions(jakarta.faces.context.FacesContext, java.lang.String)
によって分割され、1 つずつ解決されます。- パラメーター:
searchExpressionContext
-SearchExpressionContext
expressions
- 検索式- 戻り値:
- 解決された clientIds およびパススルー式。
- 例外:
ComponentNotFoundException
- 式の 1 つを解決できない場合、およびSearchExpressionHint.IGNORE_NO_RESULT
が渡されなかった場合。FacesException
- 式が無効な場合。- 導入:
- 2.3
resolveComponent
public abstract void resolveComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)
指定された式の単一の
UIComponent
を解決します。コンポーネントが解決されると、ContextCallback
が呼び出されます。- パラメーター:
searchExpressionContext
-SearchExpressionContext
expression
- 検索式callback
- 解決されたコンポーネントのコールバック- 例外:
ComponentNotFoundException
- 式を解決できない場合、およびSearchExpressionHint.IGNORE_NO_RESULT
が渡されなかった場合。FacesException
- 式が無効な場合。- 導入:
- 2.3
resolveComponents
public abstract void resolveComponents(SearchExpressionContext searchExpressionContext, StringSE expressions, ContextCallback callback)
指定された式の複数の
UIComponent
を解決します。式はsplitExpressions(jakarta.faces.context.FacesContext, java.lang.String)
によって分割され、1 つずつ解決されます。解決されたコンポーネントごとに、ContextCallback
が呼び出されます。- パラメーター:
searchExpressionContext
-SearchExpressionContext
expressions
- 検索式callback
- 解決された各コンポーネントのコールバック- 例外:
ComponentNotFoundException
- いずれかの式を解決できない場合、およびSearchExpressionHint.IGNORE_NO_RESULT
が渡されなかった場合。FacesException
- 式が無効な場合。- 導入:
- 2.3
invokeOnComponent
public void invokeOnComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)
指定された式の複数の
UIComponent
を解決します。解決されたコンポーネントごとに、ContextCallback
が呼び出されます。このメソッドは、API で最も重要なメソッドです。キーワードと ID の再帰を処理するアルゴリズムを実装します。- パラメーター:
searchExpressionContext
-SearchExpressionContext
expression
- 検索式callback
- 解決されたコンポーネントのコールバック- 例外:
FacesException
- 式が無効な場合。- 導入:
- 2.3
invokeOnComponent
public abstract void invokeOnComponent(SearchExpressionContext searchExpressionContext, UIComponent previous, StringSE expression, ContextCallback callback)
指定された式の複数の
UIComponent
を解決します。解決されたコンポーネントごとに、ContextCallback
が呼び出されます。このメソッドは、API で最も重要なメソッドです。キーワードと ID の再帰を処理するアルゴリズムを実装します。- パラメーター:
searchExpressionContext
-SearchExpressionContext
previous
- 検索のベースとなる、以前に解決されたコンポーネントexpression
- 検索式callback
- 解決されたコンポーネントのコールバック- 例外:
FacesException
- 式が無効な場合。- 導入:
- 2.3
splitExpressions
public abstract StringSE[] splitExpressions(FacesContext context, StringSE expressions)
可能性のある複数の式を持つ
getExpressionSeperatorChars(jakarta.faces.context.FacesContext)
に基づいて、文字列を配列に分割します。- パラメーター:
context
- 現在のリクエストのFacesContext
expressions
- 文字列としての式- 戻り値:
- 配列としての式
- 導入:
- 2.3
isPassthroughExpression
public abstract boolean isPassthroughExpression(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式が「パススルー式」かどうかを確認します。パススルー式はキーワードのみでなければなりません。このキーワードは
SearchKeywordResolver
によって解決されず、そのままの状態で返されます。クライアントは後で解決する責任があります。- パラメーター:
searchExpressionContext
-SearchExpressionContext
expression
- 表現- 戻り値:
- 指定された式がパススルー式である場合
- 導入:
- 2.3
isValidExpression
public abstract boolean isValidExpression(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式が有効な式であるかどうかを確認します。
次の場合、式は無効です。- リクエストされたキーワードに一致する
SearchKeywordResolver
はありません - キーワードまたは ID がリーフキーワードの後に配置されている (@none:@form)
- パラメーター:
searchExpressionContext
-SearchExpressionContext
expression
- 表現- 戻り値:
- 指定された式が有効な式である場合
- 導入:
- 2.3
- リクエストされたキーワードに一致する
getExpressionSeperatorChars
public char[] getExpressionSeperatorChars(FacesContext context)
一連の式で式を区切るために使用される文字を返します。デフォルトの実装は
EXPRESSION_SEPARATOR_CHARS
を返します。- パラメーター:
context
- 現在のリクエストのFacesContext
- 戻り値:
- 区切り文字
- 導入:
- 2.3