クラス 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
のインスタンスが作成され、返されます。Expression
javadoc の比較、直列化、不変性に関するメモを参照してください。- 導入:
- 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> T
getValue(ELContext context)
指定されたコンテキストに関連して式を評価し、結果の値を返します。ValueReference
getValueReference(ELContext context)
この式インスタンスのValueReference
を返します。abstract boolean
isReadOnly(ELContext context)
指定されたコンテキストに関連して式を評価し、setValue(jakarta.el.ELContext, java.lang.Object)
の呼び出しが常に失敗する場合はtrue
を返します。abstract void
setValue(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