アプリケーションコンテキストファイル内で定義すると、うまく評価される単純なSpring Bean Expressionがあります。
<bean id="myConfigBean" class="com.example.myBeanConfigBean">
<property name="myProperty" value="#{ someOtherBean.getData() }"/>
</bean>
今、私はプログラムで同じ評価をしたいと思っています。次のコードを使用しました。
final ExpressionParser parser = new SpelExpressionParser();
final TemplateParserContext templateContext = new TemplateParserContext();
Expression expression = parser.parseExpression("#{ someOtherBean.getData() }", templateContext);
final String value = (String) expression.getValue();
これにより例外がスローされます。
EL1007E:(pos 22): Field or property 'someOtherBean' cannot be found on null
プロパティのように構成されたBeanを許可するルートオブジェクトを何らかの方法で設定する必要があると思います。しかし、私はまだそれを機能させていません。すでにこれを行っていて、ヒントを与えることができる人はいますか?