2013-09-18 4 views
0

У меня есть поле, как показано ниже, который работаетсм другие свойства в языке выражений Spring

@Value("#{T(java.util.regex.Pattern).compile('[0-9]+')}") 
private Pattern myPattern; 

Но если я изменю его

@Value("#{T(java.util.regex.Pattern).compile(${myProp})}") 
private Pattern myPattern; 

он не работает. Есть ли способ передать свойства внутри выражения Spring?

+2

Вы сконфигурировали ** myprop ** в своем файле context.xml –

+0

http://stackoverflow.com/questions/3479156/why-would-spring-be-trying-to-use-the-properties- variable-reference-string-inste? rq = 1 –

ответ

1

Я думаю, что проблема ' s. Я бы ожидал, что SpEL обрабатывает '${myProp}' как строку, но не как свойство.

Поэтому я хотел бы попытаться удалить ' s

Смотрите мой последний комментарий

Я имел взглянуть на мой код и нашел это:

@value ("# { . новый java.text.SimpleDateFormat (гГГГ-ММ-дд ') синтаксический ('$ {showAfterDate}')} ")

- Так '$ {myProp}' должен работать

+0

Это выражение невозможно из-за второй фигурной скобки. – fastcodejava

+0

Вы правы - я посмотрел на свой код и нашел это: '@Value (" # {new java.text.SimpleDateFormat ('yyyy-MM-dd'). Parse ('$ {showAfterDate}')} ")' - Так '' $ {myProp} ''должен работать – Ralph

+0

О, дерьмо! Он работал на этот раз. Как он может разбирать вторую фигурную скобку сейчас! – fastcodejava

Смежные вопросы