#spring #resources #properties #message
#spring #Ресурсы #свойства #Сообщение
Вопрос:
Мне нужно сделать что-то вроде этого:
bob.common=goat
bob.have=I have a {bob.common}!
bob.want=I want a {bob.common}!
bob.need=I need a {bob.common}!
Возможно ли такое? Я знаю, это кажется глупым, но здесь необходима возможность повторного использования общей части, и мы действительно не можем (не хотим) делать это программно.
Мы уже используем нумерованные аргументы в наших свойствах, но мы хотели бы иметь возможность передавать ссылку на другое свойство.
Ответ №1:
Я предлагаю сделать это :
bob.common=goat
bob.have=I have a {0}!
bob.want=I want a {0}!
bob.need=I need a {0}!
Затем на вашей странице :
<spring:message code="bob.common" var="animal"/>
<spring:message code="bob.have" arguments="${animal}"/>
<spring:message code="bob.want" arguments="${animal}"/>
<spring:message code="bob.need" arguments="${animal}"/>
То, что вы хотите сделать, было бы слишком строгим, если вы хотите, например, изменить свое животное.
Ответ №2:
Согласно списку изменений Spring, это поддерживается с 2.5.3:
- PropertyPlaceholderConfigurer также поддерживает вложенные ключи в ключах-заполнителях (например, «$ {db.$ {environment}}»)
Итак, для вашего примера вы должны иметь возможность использовать:
bob.have=I have a ${bob.common}!
и PropertyPlaceholderConfigurer должен распознать «вложенный ключ» и правильно его разрешить.
Комментарии:
1. Интересно. Я попробую это завтра!
2. Черт возьми, это не работает для меня в реальном файле сообщений . Я думал, что это слишком хорошо, чтобы быть правдой. Я что-то упустил?