Tengo una sencilla expresión de beans Spring, que evalúa bien cuando me defino dentro de un archivo de contexto de aplicación:evaluar mediante programación una expresión de frijoles con expresión de Primavera Idioma
<bean id="myConfigBean" class="com.example.myBeanConfigBean">
<property name="myProperty" value="#{ someOtherBean.getData() }"/>
</bean>
Ahora, lo que quiero hacer la misma evaluación mediante programación . He utilizado el siguiente código:
final ExpressionParser parser = new SpelExpressionParser();
final TemplateParserContext templateContext = new TemplateParserContext();
Expression expression = parser.parseExpression("#{ someOtherBean.getData() }", templateContext);
final String value = (String) expression.getValue();
Esto produce una excepción:
EL1007E:(pos 22): Field or property 'someOtherBean' cannot be found on null
supongo que tengo para fijar un objeto raíz de alguna manera que permite a los granos configurados como una propiedad. Pero no lo hice funcionar todavía. ¿Alguien que ya ha hecho esto y podría dar una pista?
¿Puedo usar la expresión anterior sin el símbolo '@'? @ someOtherBean.getData() >> someOtherBean.getData(). – RiyasAbdulla
No sin configuración adicional; ver la edición de mi respuesta. Realmente debería hacer una nueva pregunta: a los administradores aquí no les gustan las preguntas nuevas en los comentarios. –