クラス 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 StringSEKEYWORD_PREFIXキーワードを識別するための接頭辞。
コンストラクターの概要
コンストラクター コンストラクター 説明 SearchExpressionHandler()
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 char[]getExpressionSeperatorChars(FacesContext context)一連の式で式を区切るために使用される文字を返します。abstract voidinvokeOnComponent(SearchExpressionContext searchExpressionContext, UIComponent previous, StringSE expression, ContextCallback callback)指定された式の複数のUIComponentを解決します。voidinvokeOnComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)指定された式の複数のUIComponentを解決します。abstract booleanisPassthroughExpression(SearchExpressionContext searchExpressionContext, StringSE expression)指定された式が「パススルー式」かどうかを確認します。abstract booleanisValidExpression(SearchExpressionContext searchExpressionContext, StringSE expression)指定された式が有効な式であるかどうかを確認します。abstract StringSEresolveClientId(SearchExpressionContext searchExpressionContext, StringSE expression)指定された式に対して単一の clientId またはパススルー式に解決されます。abstract ListSE<StringSE>resolveClientIds(SearchExpressionContext searchExpressionContext, StringSE expressions)指定された式に対して、clientIds またはパススルー式を使用してListSE に解決します。abstract voidresolveComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)指定された式の単一のUIComponentを解決します。abstract voidresolveComponents(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-SearchExpressionContextexpression- 検索式- 戻り値:
- 解決された 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 またはパススルー式を使用して
ListSE に解決します。式はsplitExpressions(jakarta.faces.context.FacesContext, java.lang.String)によって分割され、1 つずつ解決されます。- パラメーター:
searchExpressionContext-SearchExpressionContextexpressions- 検索式- 戻り値:
- 解決された clientIds およびパススルー式。
- 例外:
ComponentNotFoundException- 式の 1 つを解決できない場合、およびSearchExpressionHint.IGNORE_NO_RESULTが渡されなかった場合。FacesException- 式が無効な場合。- 導入:
- 2.3
resolveComponent
public abstract void resolveComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)
指定された式の単一の
UIComponentを解決します。コンポーネントが解決されると、ContextCallbackが呼び出されます。- パラメーター:
searchExpressionContext-SearchExpressionContextexpression- 検索式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-SearchExpressionContextexpressions- 検索式callback- 解決された各コンポーネントのコールバック- 例外:
ComponentNotFoundException- いずれかの式を解決できない場合、およびSearchExpressionHint.IGNORE_NO_RESULTが渡されなかった場合。FacesException- 式が無効な場合。- 導入:
- 2.3
invokeOnComponent
public void invokeOnComponent(SearchExpressionContext searchExpressionContext, StringSE expression, ContextCallback callback)
指定された式の複数の
UIComponentを解決します。解決されたコンポーネントごとに、ContextCallbackが呼び出されます。このメソッドは、API で最も重要なメソッドです。キーワードと ID の再帰を処理するアルゴリズムを実装します。- パラメーター:
searchExpressionContext-SearchExpressionContextexpression- 検索式callback- 解決されたコンポーネントのコールバック- 例外:
FacesException- 式が無効な場合。- 導入:
- 2.3
invokeOnComponent
public abstract void invokeOnComponent(SearchExpressionContext searchExpressionContext, UIComponent previous, StringSE expression, ContextCallback callback)
指定された式の複数の
UIComponentを解決します。解決されたコンポーネントごとに、ContextCallbackが呼び出されます。このメソッドは、API で最も重要なメソッドです。キーワードと ID の再帰を処理するアルゴリズムを実装します。- パラメーター:
searchExpressionContext-SearchExpressionContextprevious- 検索のベースとなる、以前に解決されたコンポーネントexpression- 検索式callback- 解決されたコンポーネントのコールバック- 例外:
FacesException- 式が無効な場合。- 導入:
- 2.3
splitExpressions
public abstract StringSE[] splitExpressions(FacesContext context, StringSE expressions)
可能性のある複数の式を持つ
getExpressionSeperatorChars(jakarta.faces.context.FacesContext)に基づいて、文字列を配列に分割します。- パラメーター:
context- 現在のリクエストのFacesContextexpressions- 文字列としての式- 戻り値:
- 配列としての式
- 導入:
- 2.3
isPassthroughExpression
public abstract boolean isPassthroughExpression(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式が「パススルー式」かどうかを確認します。パススルー式はキーワードのみでなければなりません。このキーワードは
SearchKeywordResolverによって解決されず、そのままの状態で返されます。クライアントは後で解決する責任があります。- パラメーター:
searchExpressionContext-SearchExpressionContextexpression- 表現- 戻り値:
- 指定された式がパススルー式である場合
- 導入:
- 2.3
isValidExpression
public abstract boolean isValidExpression(SearchExpressionContext searchExpressionContext, StringSE expression)
指定された式が有効な式であるかどうかを確認します。
次の場合、式は無効です。- リクエストされたキーワードに一致する
SearchKeywordResolverはありません - キーワードまたは ID がリーフキーワードの後に配置されている (@none:@form)
- パラメーター:
searchExpressionContext-SearchExpressionContextexpression- 表現- 戻り値:
- 指定された式が有効な式である場合
- 導入:
- 2.3
- リクエストされたキーワードに一致する
getExpressionSeperatorChars
public char[] getExpressionSeperatorChars(FacesContext context)
一連の式で式を区切るために使用される文字を返します。デフォルトの実装は
EXPRESSION_SEPARATOR_CHARSを返します。- パラメーター:
context- 現在のリクエストのFacesContext- 戻り値:
- 区切り文字
- 導入:
- 2.3