public class ELProcessor extends ObjectSE
このクラスは、直接でシンプルなインターフェースを提供します
ValueExpression
を Jakarta Expression Language 変数に設定します。この API は、Jakarta Expression Language 2.2 の API に代わるものではありません。Jakarta Expression Language 環境を維持するコンテナーは、この API を使用せずに引き続き維持できます。
カスタム ELResolver
の追加など、Jakarta Expression Language 環境を操作したい Jakarta Expression Language ユーザーには、ELManager
を使用できます。
Jakarta Expression Language 環境の状態を維持するため、ELProcessor
はスレッドセーフではありません。最も単純なケースでは、Jakarta Expression Language 式の評価の前後にインスタンスを作成および破棄できます。より一般的な使用箇所は、セッションに ELProcessor
のインスタンスを使用して、ユーザーがそのセッションの Jakarta Expression Language 評価環境を構成できるようにすることです。
クラスで使用される Jakarta Expression Language 式の文字列に関するメモ。メソッド getValue(java.lang.String, java.lang.Class<?>)
、setValue(java.lang.String, java.lang.Object)
、setVariable(java.lang.String, java.lang.String)
で許可されている文字列は、非複合式、つまり ${...} または #{...} 形式の式のみに制限されています。また、これらのメソッドで ${ または #{ および } を含む式文字列を括弧する必要はありません(実際には許可されていません)。これらは自動的にブラケットされます。これにより、機能が失われることなく、視覚的なクラスターが削減されます(連結演算子の追加により)。
ELProcessor elp = new ELProcessor(); elp.defineBean("employee", new Employee("Charlie Brown")); String name = elp.eval("employee.name");
コンストラクターと説明 |
---|
ELProcessor() |
修飾子と型 | メソッドと説明 |
---|---|
void | defineBean(StringSE name, ObjectSE bean) ローカル Bean リポジトリで Bean を定義し、同じ名前の他の Bean を非表示にします。 |
void | defineFunction(StringSE prefix, StringSE function, MethodSE method) ローカル関数マッパーで Jakarta Expression Language 関数を定義します。 |
void | defineFunction(StringSE prefix, StringSE function, StringSE className, StringSE method) ローカル関数マッパーで Jakarta Expression Language 関数を定義します。 |
ObjectSE | eval(StringSE expression) Jakarta Expression Language 式を評価します。 |
ELManager | getELManager() Jakarta Expression Language 処理に使用される ELManager を返します。 |
ObjectSE | getValue(StringSE expression, ClassSE<?> expectedType) Jakarta Expression Language 式を評価し、結果を指定された型に強制変換します。 |
void | setValue(StringSE expression, ObjectSE value) 新しい値で式を設定します。 |
void | setVariable(StringSE var, StringSE expression) Jakarta Expression Language 式を Jakarta Expression Language 変数に割り当てます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ELManager getELManager()
public ObjectSE eval(StringSE expression)
expression
- 評価される Jakarta Expression Language 式。public ObjectSE getValue(StringSE expression, ClassSE<?> expectedType)
expression
- 評価される Jakarta Expression Language 式。expectedType
- 結果の評価が強制される型を指定します。public void setValue(StringSE expression, ObjectSE value)
expression
- ターゲット式 value
- 設定する新しい値。PropertyNotFoundException
- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。PropertyNotWritableException
- 指定された変数またはプロパティが書き込み可能ではないために、最終的な変数またはプロパティの解決が失敗した場合。ELException
- プロパティまたは変数を設定しようとしたときに例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public void setVariable(StringSE var, StringSE expression)
null
の場合、変数は削除されます。var
- 変数の名前。expression
- 変数に割り当てられる Jakarta Expression Language 式。public void defineFunction(StringSE prefix, StringSE function, StringSE className, StringSE method) throws ClassNotFoundExceptionSE, NoSuchMethodExceptionSE
prefix
- 関数の名前空間。名前空間がない場合は ""。function
- 関数の名前。空("")の場合、メソッド名が関数名として使用されます。className
- 関数を実装する完全な Java クラス名。method
- 関数を実装する静的メソッドの名前(括弧なしで指定)またはシグニチャー(Java 言語仕様など)。名前( "sum" など)が指定されている場合、クラスで最初に宣言された、その名前に一致するメソッドが選択されます。シグネチャー(「int sum(int、int)」など)が指定されている場合は、シグネチャーを持つ宣言されたメソッドが選択されます。NullPointerExceptionSE
- 引数のいずれかが null の場合。ClassNotFoundExceptionSE
- 指定されたクラスが存在しない場合。NoSuchMethodExceptionSE
- メソッド(署名ありまたはなし)がクラスの宣言されたメソッドでない場合、メソッドの署名が有効でない場合、メソッドが静的メソッドでない場合 public void defineFunction(StringSE prefix, StringSE function, MethodSE method) throws NoSuchMethodExceptionSE
prefix
- 関数の名前空間。名前空間がない場合は ""。function
- 関数の名前。空("")の場合、メソッド名が関数名として使用されます。method
- 関数を実装するメソッドの java.lang.reflect.Method
インスタンス。NullPointerExceptionSE
- 引数のいずれかが null の場合。NoSuchMethodExceptionSE
- メソッドが静的メソッドでない場合 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.