クラス MapELResolver
MapSE のインスタンスのプロパティ解決動作を定義します。 このリゾルバーは、型 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引数で指定されているように、指定されたキーに関連付けられた値を返します。booleanisReadOnly(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。