クラス MapELResolver
Map
SE のインスタンスのプロパティ解決動作を定義します。 このリゾルバーは、型 java.util.Map
のベースオブジェクトを処理します。任意のオブジェクトをプロパティとして受け入れ、そのオブジェクトをマップのキーとして使用します。結果の値は、そのキーに関連付けられているマップ内の値です。
このリゾルバーは読み取り専用モードで構築できます。つまり、isReadOnly
は常に true
を返し、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
は常に PropertyNotWritableException
をスローします。
ELResolver
は CompositeELResolver
を使用して組み合わされ、式を評価するための豊富なセマンティクスを定義します。詳細については、ELResolver
の javadoc を参照してください。
- 導入:
- Jakarta Server Pages 2.1
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明新しい読み取り / 書き込みMapELResolver
を作成します。MapELResolver
(boolean isReadOnly) 指定されたパラメーターによって読み取り専用ステータスが決定される新しいMapELResolver
を作成します。メソッドのサマリー
修飾子と型メソッド説明ClassSE<?>
getCommonPropertyType
(ELContext context, ObjectSE base) ベースオブジェクトがマップの場合、このリゾルバーがproperty
引数に対して受け入れる最も一般的な型を返します。ClassSE<?>
ベースオブジェクトがマップの場合、このマップの値に対して最も一般的に受け入れられる型を返します。ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を返します。boolean
isReadOnly
(ELContext context, ObjectSE base, ObjectSE property) ベースオブジェクトがマップの場合、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
の呼び出しが常に失敗するかどうかを返します。void
ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を設定しようとします。クラス jakarta.el.ELResolver から継承されたメソッド
convertToType, invoke
コンストラクターの詳細
MapELResolver
public MapELResolver()新しい読み取り / 書き込みMapELResolver
を作成します。MapELResolver
public MapELResolver(boolean isReadOnly) 指定されたパラメーターによって読み取り専用ステータスが決定される新しいMapELResolver
を作成します。- パラメーター:
isReadOnly
- このリゾルバーがマップを変更できない場合はtrue
。それ以外の場合はfalse
。
メソッドの詳細
getType
ベースオブジェクトがマップの場合、このマップの値に対して最も一般的に受け入れられる型を返します。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は戻り値を無視する必要があります。ベースが
Map
であると仮定すると、リゾルバーが読み取り専用モードで構築されていない限り、このメソッドは常にObject.class
を返します。読み取り専用モードの場合はnull
が返されます。これは、Map
が特定のキーの値として任意のオブジェクトを受け入れるためです。- 次で指定:
- クラス
ELResolver
のgetType
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 受け入れ可能な型を返すためのキー。このリゾルバーでは無視されます。- 戻り値:
ELContext
のpropertyResolved
プロパティがtrue
に設定された場合、プロパティまたはリゾルバーが読み取り専用の場合、最も一般的に受け入れられる型はnull
でなければなりません。それ以外は未定義- 例外:
NullPointerExceptionSE
- コンテキストがnull
の場合ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
getValue
ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を返します。キーが見つからなかった場合は、null
が返されます。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は戻り値を無視する必要があります。Map.get(java.lang.Object)
SE の場合と同様に、null
が返されるからといって、キーのマッピングがないことを意味するわけではありません。Map
がキーをnull
に明示的にマップすることも可能です。- 次で指定:
- クラス
ELResolver
のgetValue
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 関連する値が返されるキー。- 戻り値:
ELContext
のpropertyResolved
プロパティがtrue
に設定されている場合、指定されたキーに関連付けられている値、キーが見つからなかった場合はnull
。それ以外の場合は未定義です。- 例外:
ClassCastExceptionSE
- キーがこのマップに不適切な型である場合(オプションで、基になるMap
によってスローされます)。NullPointerExceptionSE
- コンテキストがnull
の場合、またはキーが null であり、このマップが null キーを許可しない場合(後者はオプションで基になるMap
によってスローされます)。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
setValue
ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を設定しようとします。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は値が設定されていないと安全に想定できます。このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に
PropertyNotWritableException
をスローします。Map
がCollections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
SE を使用して作成された場合、このメソッドはPropertyNotWritableException
をスローする必要があります。残念ながら、これを検出するコレクション API メソッドはありません。ただし、実装はプロトタイプの変更不可能なMap
を作成し、その実行時型をクエリして、回避策としてベースオブジェクトの実行時型と一致するかどうかを確認できます。- 次で指定:
- クラス
ELResolver
のsetValue
- パラメーター:
context
- この評価のコンテキスト。base
- 変更するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 指定された値が関連付けられるキー。val
- 指定されたキーに関連付けられる値。- 例外:
ClassCastExceptionSE
- 指定されたキーまたは値のクラスにより、このマップに保存できない場合。NullPointerExceptionSE
- コンテキストがnull
の場合、またはこのマップがnull
キーまたは値を許可せず、指定されたキーまたは値がnull
の場合。IllegalArgumentExceptionSE
- このキーまたは値の何らかの側面により、このマップに保存できない場合。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。PropertyNotWritableException
- このリゾルバーが読み取り専用モードで構築された場合、または put 操作が基になるマップでサポートされていない場合。
isReadOnly
ベースオブジェクトがマップの場合、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
の呼び出しが常に失敗するかどうかを返します。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は戻り値を無視する必要があります。このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に
true
を返します。Map
がCollections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
SE を使用して作成された場合、このメソッドはtrue
を返す必要があります。残念ながら、これを検出するコレクション API メソッドはありません。ただし、実装では、プロトタイプの変更不可能なMap
を作成し、その実行時型をクエリして、回避策としてベースオブジェクトの実行時型と一致するかどうかを確認できます。- 次で指定:
- クラス
ELResolver
のisReadOnly
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 読み取り専用ステータスを返すためのキー。このリゾルバーでは無視されます。- 戻り値:
ELContext
のpropertyResolved
プロパティがtrue
に設定されている場合、setValue
メソッドの呼び出しが常に失敗する場合はtrue
、そのような呼び出しが成功する可能性がある場合はfalse
。それ以外は未定義。- 例外:
NullPointerExceptionSE
- コンテキストがnull
の場合ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
getCommonPropertyType
ベースオブジェクトがマップの場合、このリゾルバーがproperty
引数に対して受け入れる最も一般的な型を返します。それ以外の場合は、null
を返します。ベースが
Map
であるとすると、このメソッドは常にObject.class
を返します。これは、Map
が任意のオブジェクトをキーとして受け入れるためです。- 次で指定:
- クラス
ELResolver
のgetCommonPropertyType
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。- 戻り値:
- ベースが
Map
でない場合はnull
。それ以外の場合はObject.class
。