クラス ArrayELResolver
このリゾルバーは、Java 言語配列である基本オブジェクトを処理します。大文字と小文字を区別する文字列 "length" またはその他のオブジェクトをプロパティとして受け入れ、そのオブジェクトを配列の整数インデックスに強制変換します。結果の値は、そのインデックスにある配列の値です。
このリゾルバーは読み取り専用モードで構築できます。つまり、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
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明新しい読み取り / 書き込みArrayELResolverを作成します。ArrayELResolver(boolean isReadOnly) 指定されたパラメーターによって読み取り専用ステータスが決定される新しいArrayELResolverを作成します。メソッドのサマリー
修飾子と型メソッド説明ClassSE<?>getCommonPropertyType(ELContext context, ObjectSE base) 基本オブジェクトが Java 言語配列の場合、このリゾルバーがproperty引数として受け入れる最も一般的な型を返します。ClassSE<?>基本オブジェクトが配列の場合、この配列の値の最も一般的に受け入れ可能な型を返します。基本オブジェクトが Java 言語配列の場合、配列の長さまたは指定されたインデックスの値を返します。booleanisReadOnly(ELContext context, ObjectSE base, ObjectSE property) 基本オブジェクトが Java 言語配列の場合、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)の呼び出しが常に失敗するかどうかを返します。void基本オブジェクトが Java 言語配列であり、プロパティが大文字と小文字を区別する文字列lengthでない場合は、指定されたインデックスの値を指定された値に設定しようとします。クラス jakarta.el.ELResolver から継承されたメソッド
convertToType, invoke
コンストラクターの詳細
ArrayELResolver
public ArrayELResolver()新しい読み取り / 書き込みArrayELResolverを作成します。ArrayELResolver
public ArrayELResolver(boolean isReadOnly) 指定されたパラメーターによって読み取り専用ステータスが決定される新しいArrayELResolverを作成します。- パラメーター:
isReadOnly- このリゾルバーが配列を変更できない場合はtrue。それ以外の場合はfalse。
メソッドの詳細
getType
基本オブジェクトが配列の場合、この配列の値の最も一般的に受け入れ可能な型を返します。ベースが
arrayの場合、戻る前に、このリゾルバーによってELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。ベースが
arrayであり、このリゾルバーが読み取り専用モードで構築されておらず、指定されたプロパティがベース配列の有効なインデックスに強制変換できると仮定すると、このメソッドは、配列内の任意のインデックスに格納できる最も一般的な型のコンポーネントであるbase.getClass().getComponentType()を返します。- 次で指定:
- クラス
ELResolverのgetType - パラメーター:
context- この評価のコンテキスト。base- 分析する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。property- 大文字と小文字を区別する文字列"length"または、許容可能な型を返す配列内の要素のインデックス。大文字と小文字を区別する文字列"length"でない場合は、整数に強制変換され、配列の有効なインデックスであるかどうかがチェックされますが、それ以外の場合はこのリゾルバーによって無視されます。- 戻り値:
ELContextのpropertyResolvedプロパティがtrueに設定された場合、プロパティまたはリゾルバーが読み取り専用の場合、最も一般的に受け入れられる型はnullでなければなりません。それ以外は未定義- 例外:
PropertyNotFoundException- 指定されたインデックスがこの配列の範囲外の場合。NullPointerExceptionSE- コンテキストがnullの場合ELException- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
getValue
基本オブジェクトが Java 言語配列の場合、配列の長さまたは指定されたインデックスの値を返します。property引数が大文字と小文字を区別する文字列"length"の場合、配列の長さが返されます。それ以外の場合、property引数は強制的に整数に変換され、返される値のインデックスとして使用されます。強制を実行できなかった場合は、IllegalArgumentExceptionがスローされます。インデックスが範囲外の場合は、nullが返されます。ベースが Java 言語配列の場合、戻る前に、このリゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。- 次で指定:
- クラス
ELResolverのgetValue - パラメーター:
context- この評価のコンテキスト。base- 分析する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。property- 文字列"length"または返される値のインデックス。インデックス値は強制的に整数に変換されます。- 戻り値:
ELContextのpropertyResolvedプロパティがtrueに設定されている場合は、配列の長さ、指定されたインデックスの値、インデックスが範囲外の場合はnullになります。それ以外の場合は未定義です。- 例外:
IllegalArgumentExceptionSE- プロパティが文字列"length"ではなく、整数に強制変換できなかった場合。NullPointerExceptionSE- コンテキストがnullの場合。ELException- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
setValue
ベースオブジェクトが Java 言語配列であり、プロパティが大文字と小文字を区別する文字列lengthでない場合は、指定されたインデックスの値を指定された値に設定しようとします。インデックスはproperty引数で指定され、整数に強制変換されます。強制変換を実行できなかった場合は、IllegalArgumentExceptionがスローされます。インデックスが範囲外の場合は、PropertyNotFoundExceptionがスローされます。ベースが Java 言語配列の場合、戻る前に、このリゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は値が設定されていないと安全に想定できます。このリゾルバーが読み取り専用モードで構築された場合、またはプロパティが大文字と小文字を区別する文字列
lengthである場合、このメソッドは常にPropertyNotWritableExceptionをスローします。- 次で指定:
- クラス
ELResolverのsetValue - パラメーター:
context- この評価のコンテキスト。base- 変更する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。property- 設定する値のインデックスを提供するために大文字と小文字を区別する文字列lengthまたは整数に強制変換するオブジェクト。val- 指定されたインデックスに設定される値。- 例外:
ClassCastExceptionSE- 指定された要素のクラスにより、その要素がこの配列に追加されない場合。NullPointerExceptionSE- コンテキストがnullの場合。IllegalArgumentExceptionSE- プロパティを整数に強制変換できなかった場合、または指定された要素の何らかの側面により、プロパティがこの配列に追加されない場合。PropertyNotWritableException- このリゾルバーが読み取り専用モードで構築された場合、またはプロパティが大文字と小文字を区別する文字列lengthであった場合。PropertyNotFoundException- 指定されたインデックスがこの配列の範囲外の場合。ELException- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
isReadOnly
基本オブジェクトが Java 言語配列の場合、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)の呼び出しが常に失敗するかどうかを返します。ベースが Java 言語配列の場合、戻る前に、このリゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。このリゾルバーが読み取り専用モードで構築された場合、またはプロパティが大文字と小文字を区別する文字列
lengthである場合、このメソッドは常にtrueを返します。それ以外の場合は、falseを返します。- 次で指定:
- クラス
ELResolverのisReadOnly - パラメーター:
context- この評価のコンテキスト。base- 分析する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。property- 大文字と小文字を区別する文字列length、または整数に強制変換してインデックスを提供するオブジェクト。このインデックスを使用してsetValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)を呼び出そうとすると常に失敗するかどうかを確認します。- 戻り値:
ELContextのpropertyResolvedプロパティがtrueに設定されている場合、setValueメソッドの呼び出しが常に失敗する場合はtrue、そのような呼び出しが成功する可能性がある場合はfalse。それ以外は未定義。- 例外:
PropertyNotFoundException- 指定されたインデックスがこの配列の範囲外の場合。NullPointerExceptionSE- コンテキストがnullの場合ELException- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
getCommonPropertyType
基本オブジェクトが Java 言語配列の場合、このリゾルバーがproperty引数に対して受け入れる最も一般的な型を返します。それ以外の場合は、nullを返します。ベースが配列であると仮定すると、このメソッドは常に
Integer.classを返します。これは、配列がインデックスに整数を受け入れるためです。- 次で指定:
- クラス
ELResolverのgetCommonPropertyType - パラメーター:
context- この評価のコンテキスト。base- 分析する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。- 戻り値:
- ベースが Java 言語配列でない場合は
null。それ以外の場合はInteger.class。