ho una semplice espressione Primavera Bean, che valuta bene quando mi definisco all'interno di un file di contesto di applicazione:programmazione valutare un'espressione di fagioli con molla Expression Language
<bean id="myConfigBean" class="com.example.myBeanConfigBean">
<property name="myProperty" value="#{ someOtherBean.getData() }"/>
</bean>
Ora, voglio fare la stessa valutazione a livello di codice . Ho usato il seguente codice:
final ExpressionParser parser = new SpelExpressionParser();
final TemplateParserContext templateContext = new TemplateParserContext();
Expression expression = parser.parseExpression("#{ someOtherBean.getData() }", templateContext);
final String value = (String) expression.getValue();
Questo genera un'eccezione:
EL1007E:(pos 22): Field or property 'someOtherBean' cannot be found on null
mi sa che devo impostare un oggetto radice in qualche modo che permette ai fagioli configurati come una proprietà. Ma non l'ho ancora fatto funzionare. Chiunque, chi l'ha già fatto e potrebbe dare un suggerimento?
Posso usare l'espressione precedente senza il simbolo '@'? @ someOtherBean.getData() >> someOtherBean.getData(). – RiyasAbdulla
Non senza configurazione aggiuntiva; vedi la modifica alla mia risposta. Dovresti davvero fare una nuova domanda - gli amministratori qui non amano le nuove domande nei commenti. –