Mam proste Wiosna Bean wypowiedzi, rozpoznawaną w porządku kiedy zdefiniować go wewnątrz pliku kontekstowego aplikacji:programowo ocenić ekspresję Bean z Wiosna Expression Language
<bean id="myConfigBean" class="com.example.myBeanConfigBean">
<property name="myProperty" value="#{ someOtherBean.getData() }"/>
</bean>
Teraz chcę zrobić taką samą ocenę programowo . Użyłem następujący kod:
final ExpressionParser parser = new SpelExpressionParser();
final TemplateParserContext templateContext = new TemplateParserContext();
Expression expression = parser.parseExpression("#{ someOtherBean.getData() }", templateContext);
final String value = (String) expression.getValue();
ta zgłasza wyjątek:
EL1007E:(pos 22): Field or property 'someOtherBean' cannot be found on null
Chyba muszę ustawić główny obiekt w jakiś sposób, który pozwala na skonfigurowanych ziaren takich jak nieruchomości. Ale nie udało mi się jeszcze go uruchomić. Ktoś, kto już to zrobił i może dać wskazówkę?
Czy mogę użyć powyższego wyrażenia bez symbolu "@"? @ someOtherBean.getData() >> someOtherBean.getData(). – RiyasAbdulla
Nie bez dodatkowej konfiguracji; zobacz edycję do mojej odpowiedzi. Powinieneś zadać nowe pytanie - administratorzy nie lubią nowych pytań w komentarzach. –