クラス ValueExpression
- java.lang.ObjectSE
-
- jakarta.el.Expression
-
- jakarta.el.ValueExpression
- 実装済みのインターフェース一覧:
SerializableSE
- 既知の直属サブクラス
IndexedValueExpression,IteratedValueExpression
public abstract class ValueExpression extends Expression
値を取得または設定できるExpression。この API の以前の化身では、式は読み取ることしかできませんでした。
ValueExpressionオブジェクトは、値の取得と設定の両方に使用できるようになりました。値を設定できる式は、l 値式と呼ばれます。できない値は、r 値式と呼ばれます。すべての r 値式を l 値式として使用できるわけではありません(例:"${1+1}"または"${firstName} ${lastName}")。詳細については、EL 仕様を参照してください。l 値として使用できない式は、常にisReadOnly()からtrueを返す必要があります。メソッドを使用して式文字列を解析し、解析された式をカプセル化するExpressionFactory.createValueExpression(jakarta.el.ELContext, java.lang.String, java.lang.Class<?>)ValueExpressionの具象インスタンスを返すことができます。FunctionMapperは評価時ではなく解析時に使用されるため、このクラスを使用して式を評価する必要はありません。ただし、評価時にはELContextが必要です。getValue(jakarta.el.ELContext)、setValue(jakarta.el.ELContext, java.lang.Object)、isReadOnly(jakarta.el.ELContext)、getType(jakarta.el.ELContext)およびgetValueReference(jakarta.el.ELContext)メソッドは、呼び出されるたびに式を評価します。ELContextのELResolverは、トップレベルの変数を解決し、.および[]演算子の動作を決定するために使用されます。5 つのメソッドのいずれでも、ELResolver.getValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object)メソッドを使用して、最後のプロパティを除くすべてのプロパティを解決します。これにより、baseオブジェクトが提供されます。getValueReference(jakarta.el.ELContext)メソッド以外のすべてのメソッドの場合、最後の解決で、ValueExpressionは、対応するELResolver.getValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object)、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)、ELResolver.isReadOnly(jakarta.el.ELContext, java.lang.Object, java.lang.Object)、ELResolver.getType(jakarta.el.ELContext, java.lang.Object, java.lang.Object)メソッドを呼び出します。どちらがValueExpressionで呼び出されたかによって異なります。getValueReference(jakarta.el.ELContext)メソッドの場合、(base、property)は ELResolver によって解決されませんが、これをカプセル化するためにValueReferenceのインスタンスが作成され、返されます。Expressionjavadoc の比較、直列化、不変性に関するメモを参照してください。- 導入:
- Jakarta Server Pages 2.1
- 関連事項:
ELResolver,Expression,ExpressionFactory, 連載形式
コンストラクターの概要
コンストラクター コンストラクター 説明 ValueExpression()
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract ClassSE<?>getExpectedType()式の結果が評価後に強制される型を返します。abstract ClassSE<?>getType(ELContext context)指定されたコンテキストを基準にして式を評価し、setValue(jakarta.el.ELContext, java.lang.Object)メソッドの今後の呼び出しでvalueパラメーターとしてオブジェクトを渡すのに受け入れられる最も一般的な型を返します。abstract <T> TgetValue(ELContext context)指定されたコンテキストに関連して式を評価し、結果の値を返します。ValueReferencegetValueReference(ELContext context)この式インスタンスのValueReferenceを返します。abstract booleanisReadOnly(ELContext context)指定されたコンテキストに関連して式を評価し、setValue(jakarta.el.ELContext, java.lang.Object)の呼び出しが常に失敗する場合はtrueを返します。abstract voidsetValue(ELContext context, ObjectSE value)指定されたコンテキストに関連して式を評価し、結果を指定された値に設定します。クラス jakarta.el.Expression から継承されたメソッド
equals, getExpressionString, hashCode, isLiteralText
メソッドの詳細
getValue
public abstract <T> T getValue(ELContext context)
指定されたコンテキストに関連して式を評価し、結果の値を返します。結果の値は、この式が作成されたときに
ExpressionFactoryに提供されたgetExpectedType()によって返された型に自動的に強制変換されます。- パラメーター:
context- この評価のコンテキスト。- 戻り値:
- 式評価の結果。
- 例外:
NullPointerExceptionSE- コンテキストがnullの場合。PropertyNotFoundException- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。ELException- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
setValue
public abstract void setValue(ELContext context, ObjectSE value)
指定されたコンテキストに関連して式を評価し、結果を指定された値に設定します。- パラメーター:
context- この評価のコンテキスト。value- 設定する新しい値。- 例外:
NullPointerExceptionSE- コンテキストがnullの場合。PropertyNotFoundException- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。PropertyNotWritableException- 指定された変数またはプロパティが書き込み可能ではないために、最終的な変数またはプロパティの解決が失敗した場合。ELException- プロパティまたは変数を設定しようとしたときに例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
isReadOnly
public abstract boolean isReadOnly(ELContext context)
指定されたコンテキストに関連して式を評価し、setValue(jakarta.el.ELContext, java.lang.Object)の呼び出しが常に失敗する場合はtrueを返します。- パラメーター:
context- この評価のコンテキスト。- 戻り値:
- 式が読み取り専用の場合は
true、そうでない場合はfalse。 - 例外:
NullPointerExceptionSE- コンテキストがnullの場合。PropertyNotFoundException- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。ELException- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。* コンテキストがnullの場合は @throws NullPointerException
getType
public abstract ClassSE<?> getType(ELContext context)
指定されたコンテキストを基準にして式を評価し、setValue(jakarta.el.ELContext, java.lang.Object)メソッドの今後の呼び出しでvalueパラメーターとしてオブジェクトを渡すのに受け入れられる最も一般的な型を返します。これは、常に
getValue().getClass()と同じではありません。例: 配列要素を参照する式の場合、getTypeメソッドは配列の要素型を返します。これは、指定された配列要素に現在ある実際の要素の型のスーパークラスである可能性があります。- パラメーター:
context- この評価のコンテキスト。- 戻り値:
- 最も一般的な許容型。それ以外は未定義。
- 例外:
NullPointerExceptionSE- コンテキストがnullの場合。PropertyNotFoundException- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。ELException- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
getExpectedType
public abstract ClassSE<?> getExpectedType()
式の結果が評価後に強制される型を返します。- 戻り値:
- この
ValueExpressionを作成したExpressionFactory.createValueExpressionメソッドに渡されたexpectedType
getValueReference
public ValueReference getValueReference(ELContext context)
この式インスタンスのValueReferenceを返します。- パラメーター:
context- この評価のコンテキスト- 戻り値:
- この
ValueExpressionのValueReference、またはこのValueExpressionがベース(null または非 null)およびプロパティへの参照でない場合はnull。ベースが null で、プロパティが Jakarta Expression Language 変数の場合、この Jakarta Expression Language 変数に関連付けられているValueExpressionのValueReferenceを返します。 - 導入:
- Jakarta Expression Language 2.2