クラス ELContext
- java.lang.ObjectSE
-
- jakarta.el.ELContext
- 既知の直属サブクラス
FaceletContext,StandardELContext
public abstract class ELContext extends ObjectSE
式の解析および評価のコンテキスト情報。Expressionを解析または評価するには、ELContextを提供する必要があります。ELContextは以下を保持します。- Jakarta Expression Language Functions の解決に使用される
FunctionMapperへの参照。これは解析でのみ使用されます。 - Jakarta Expression Language Variables の解決に使用される
VariableMapperへの参照。これは解析でのみ使用されます。 - モデルオブジェクトとそのプロパティを解決するために参照されるベース
ELResolverへの参照 ELResolverが使用するすべての関連するコンテキストオブジェクトのコレクション- プロパティがまだ解決されているかどうかなど、式の評価中の状態情報
- インポートされたクラスを解決するために参照される
ImportHandlerへの参照 - アクティブな
LambdaExpressionの引数への参照 - 登録された評価リスナーのリストへの参照
各
ELResolverは異なるコンテキストオブジェクトにアクセスする必要があるため、コンテキストオブジェクトのコレクションが必要です。例: Jakarta Server Pages および Jakarta Faces リゾルバーは、それぞれjakarta.servlet.jsp.JspContextおよびjakarta.faces.context.FacesContextにアクセスする必要があります。Web コンテナーで使用される場合、
ELContextオブジェクトの作成は、基礎となるテクノロジーによって制御されます。例: Jakarta Server Pages では、JspContext.getELContext()ファクトリ方式が使用されます。一部のテクノロジーは、ELContextListenerを追加する機能を提供するため、アプリケーションおよびフレームワークは、独自に作成されたELContextに独自のコンテキストオブジェクトを確実に接続できます。StandardELContextは、スタンドアロン環境で使用される場合、ELManagerによって管理および変更されるデフォルトのELContextを提供します。式の評価中に状態を保存するため、
ELContextオブジェクトはスレッドセーフではありません。2 つ以上のスレッド間でELContextインスタンスを共有しないように注意する必要があります。- 導入:
- Jakarta Expression Language 2.1 および Jakarta Expression Language 3.0
- 関連事項:
ELContextListener,ELContextEvent,ELResolver,FunctionMapper,VariableMapper,ImportHandler,LambdaExpression,StandardELContext
コンストラクターの概要
コンストラクター コンストラクター 説明 ELContext()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddEvaluationListener(EvaluationListener listener)評価リスナーを ELContext に登録します。<T> TconvertToType(ObjectSE obj, ClassSE<T> targetType)オブジェクトを特定の型に変換します。voidenterLambdaScope(MapSE<StringSE,ObjectSE> args)Lambda 式の評価の準備として、Lambda 引数マップをインストールします。voidexitLambdaScope()Lambda 式の評価を終了します。ObjectSEgetContext(ClassSE<?> key)指定されたキーに関連付けられたコンテキストオブジェクトを返します。abstract ELResolvergetELResolver()このコンテキストに関連付けられたELResolverを取得します。ListSE<EvaluationListener>getEvaluationListeners()登録された評価リスナーのリストを返します。abstract FunctionMappergetFunctionMapper()このELContextに関連付けられたFunctionMapperを取得します。ImportHandlergetImportHandler()このELContextに関連付けられたImportHandlerを取得します。ObjectSEgetLambdaArgument(StringSE arg)仮パラメーターに関連付けられた Lambda 引数を取得します。LocaleSEgetLocale()setLocale(java.util.Locale)への前回の呼び出しで保存されたLocaleを取得します。abstract VariableMappergetVariableMapper()このELContextに関連付けられたVariableMapperを取得します。booleanisLambdaArgument(StringSE arg)名前が LambdaArgument かどうかを問い合わせますbooleanisPropertyResolved()ELResolverが指定された(ベース、プロパティ)ペアを正常に解決したかどうかを返します。voidnotifyAfterEvaluation(StringSE expr)Jakarta Expression Language 式が評価された後にリスナーに通知しますvoidnotifyBeforeEvaluation(StringSE expr)Jakarta Expression Language 式が評価される前にリスナーに通知しますvoidnotifyPropertyResolved(ObjectSE base, ObjectSE property)(base、property)ペアが解決されたときにリスナーに通知しますvoidputContext(ClassSE<?> key, ObjectSE contextObject)コンテキストオブジェクトをこのELContextに関連付けます。voidsetLocale(LocaleSE locale)このインスタンスのLocaleを設定します。voidsetPropertyResolved(boolean resolved)ELResolverが特定の(ベース、プロパティ)ペアを正常に解決したことを示すために呼び出されます。voidsetPropertyResolved(ObjectSE base, ObjectSE property)ELResolverが特定の(ベース、プロパティ)ペアを正常に解決したことを示し、EvaluationListenerに通知するために呼び出されます。
メソッドの詳細
setPropertyResolved
public void setPropertyResolved(boolean resolved)
ELResolverが特定の(ベース、プロパティ)ペアを正常に解決したことを示すために呼び出されます。解決が true の場合はsetPropertyResolved(Object, Object)を使用し、EvaluationListenerに通知します。CompositeELResolverはこのプロパティをチェックして、他のコンポーネントリゾルバーを考慮するかスキップするかを決定します。- パラメーター:
resolved- プロパティが解決されている場合は true、解決されていない場合は false。- 関連事項:
CompositeELResolver
setPropertyResolved
public void setPropertyResolved(ObjectSE base, ObjectSE property)
ELResolverが特定の(ベース、プロパティ)ペアを正常に解決したことを示し、EvaluationListenerに通知するために呼び出されます。CompositeELResolverはこのプロパティをチェックして、他のコンポーネントリゾルバーを考慮するかスキップするかを決定します。- パラメーター:
base- 基本オブジェクトproperty- プロパティオブジェクト- 導入:
- Jakarta Expression Language 3.0
- 関連事項:
CompositeELResolver
isPropertyResolved
public boolean isPropertyResolved()
ELResolverが指定された(ベース、プロパティ)ペアを正常に解決したかどうかを返します。CompositeELResolverはこのプロパティをチェックして、他のコンポーネントリゾルバーを考慮するかスキップするかを決定します。- 戻り値:
- プロパティが解決されている場合は true、解決されていない場合は false。
- 関連事項:
CompositeELResolver
putContext
public void putContext(ClassSE<?> key, ObjectSE contextObject)
コンテキストオブジェクトをこのELContextに関連付けます。ELContextは、式の評価に関連するコンテキストオブジェクトのコレクションを保持します。これらのコンテキストオブジェクトはELResolverによって使用されます。このメソッドは、そのコレクションにコンテキストオブジェクトを追加するために使用されます。慣例により、
contextObjectはkeyで指定された型になります。ただし、これは必須ではなく、キーは一意の識別子として厳密に使用されます。- パラメーター:
key- このコンテキストオブジェクトを識別するために @{link ELResolver} によって使用されるキー。contextObject- コレクションに追加するコンテキストオブジェクト。- 例外:
NullPointerExceptionSE- キーが null の場合、または contextObject が null の場合。
getContext
public ObjectSE getContext(ClassSE<?> key)
指定されたキーに関連付けられたコンテキストオブジェクトを返します。ELContextは、式の評価に関連するコンテキストオブジェクトのコレクションを保持します。これらのコンテキストオブジェクトはELResolverによって使用されます。このメソッドは、指定されたキーを持つコンテキストをコレクションから取得するために使用されます。慣例により、返されるオブジェクトは
keyで指定された型になります。ただし、これは必須ではなく、キーは一意の識別子として厳密に使用されます。- パラメーター:
key- コンテキストオブジェクトをこのELContextに関連付けるために使用された一意の識別子。- 戻り値:
- 指定されたキーに関連付けられたコンテキストオブジェクト。そのようなコンテキストが見つからなかった場合は null。
- 例外:
NullPointerExceptionSE- キーが null の場合。
getELResolver
public abstract ELResolver getELResolver()
このコンテキストに関連付けられたELResolverを取得します。ELContextは、式の評価中に変数とプロパティを解決するために参照されるELResolverへの参照を維持します。このメソッドは、リゾルバーへの参照を取得します。ELContextが構築されると、コンテキストに関連付けられたELResolverへの参照は変更できません。- 戻り値:
- 式の評価中に変数とプロパティの解決のために参照されるリゾルバー。
getImportHandler
public ImportHandler getImportHandler()
このELContextに関連付けられたImportHandlerを取得します。- 戻り値:
- クラスとパッケージのインポートを管理するインポートハンドラー。
- 導入:
- Jakarta Expression Language 3.0
getFunctionMapper
public abstract FunctionMapper getFunctionMapper()
このELContextに関連付けられたFunctionMapperを取得します。- 戻り値:
- Jakarta Expression Language 関数の解決のために参照される関数マッパー。
getLocale
public LocaleSE getLocale()
setLocale(java.util.Locale)への以前の呼び出しで格納されたLocaleを取得します。このメソッドが非nullを返す場合、このLocaleは、実装におけるすべてのローカライゼーションのニーズに使用する必要があります。Localeを動的に変更するアプリケーションを可能にするために、Localeをキャッシュしないでください。- 戻り値:
- このインスタンスが動作している
Locale。主にメッセージのローカライズに使用されます。
setLocale
public void setLocale(LocaleSE locale)
このインスタンスのLocaleを設定します。このメソッドは、Jakarta Faces や Jakarta Server Pages などのインスタンスを作成するパーティによって呼び出され、Jakarta Expression Language 実装がローカライズされたメッセージをユーザーに提供できるようにします。
Localeが設定されていない場合、実装はLocale.getDefault( )によって返されるロケールを使用する必要があります。- パラメーター:
locale- このインスタンスのロケール
getVariableMapper
public abstract VariableMapper getVariableMapper()
このELContextに関連付けられたVariableMapperを取得します。- 戻り値:
- Jakarta Expression Language 変数の解決のために参照される変数マッパー。
addEvaluationListener
public void addEvaluationListener(EvaluationListener listener)
評価リスナーを ELContext に登録します。- パラメーター:
listener- 追加するリスナー。- 導入:
- Jakarta Expression Language 3.0
getEvaluationListeners
public ListSE<EvaluationListener> getEvaluationListeners()
登録された評価リスナーのリストを返します。- 戻り値:
- 登録された評価リスナーのリスト。
- 導入:
- Jakarta Expression Language 3.0
notifyBeforeEvaluation
public void notifyBeforeEvaluation(StringSE expr)
Jakarta Expression Language 式が評価される前にリスナーに通知します- パラメーター:
expr- 評価される Jakarta Expression Language 式の文字列
notifyAfterEvaluation
public void notifyAfterEvaluation(StringSE expr)
Jakarta Expression Language 式が評価された後にリスナーに通知します- パラメーター:
expr- 評価された Jakarta Expression Language 式文字列
notifyPropertyResolved
public void notifyPropertyResolved(ObjectSE base, ObjectSE property)
(base、property)ペアが解決されたときにリスナーに通知します- パラメーター:
base- 基本オブジェクトproperty- プロパティオブジェクト
isLambdaArgument
public boolean isLambdaArgument(StringSE arg)
名前が LambdaArgument かどうかを問い合わせます- パラメーター:
arg- 可能な Lambda 仮パラメーター名- 戻り値:
- arg が LambdaArgument の場合は true、それ以外の場合は false。
getLambdaArgument
public ObjectSE getLambdaArgument(StringSE arg)
仮パラメーターに関連付けられた Lambda 引数を取得します。Lambda 式が他の Lambda 式内にネストされている場合、現在の Lambda 式の引数が最初に検索され、見つからない場合は、直接ネストされている Lambda 式の引数が検索されます。- パラメーター:
arg- Lambda 引数の仮パラメーター- 戻り値:
- 仮パラメーターに関連付けられたオブジェクト。オブジェクトがパラメーターに関連付けられていない場合は null。
- 導入:
- Jakarta Expression Language 3.0
enterLambdaScope
public void enterLambdaScope(MapSE<StringSE,ObjectSE> args)
ラムダ式の評価に備えて、ラムダ引数マップをインストールします。マップ内の引数は、ラムダ式の評価中にスコープに含まれます。- パラメーター:
args- ラムダ引数マップ- 導入:
- Jakarta Expression Language 3.0
exitLambdaScope
public void exitLambdaScope()
Lambda 式の評価を終了します。以前にインストールされていた Lambda 引数マップは削除されました。- 導入:
- Jakarta Expression Language 3.0
convertToType
public <T> T convertToType(ObjectSE obj, ClassSE<T> targetType)
オブジェクトを特定の型に変換します。ELResolverのカスタムコンバーターがこの変換を処理する場合は、それが使用されます。それ以外の場合は、標準の強制が適用されます。変換中にエラーが発生すると、
ELExceptionがスローされます。- パラメーター:
obj- 変換するオブジェクト。targetType- 変換のターゲット型。- 戻り値:
targetTypeに変換されたオブジェクト- 例外:
ELException- エラーが発生した場合にスローされます。- 導入:
- Jakarta Expression Language 3.0