パッケージ jakarta.el

クラス ValueExpression

java.lang.ObjectSE
jakarta.el.Expression
jakarta.el.ValueExpression
実装されているすべてのインターフェース:
SerializableSE
既知の直属サブクラス
IndexedValueExpressionIteratedValueExpression

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
関連事項:
  • コンストラクターの詳細

    • ValueExpression

      public ValueExpression()
  • メソッドの詳細

    • 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