#spring #spring-mvc
#spring #spring-mvc
Вопрос:
Я не могу найти источник сообщения в своем приложении. Я установил следующую конфигурацию
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list><value>resources.dev</value></list>
</property>
</bean>
Будут добавлены дополнительные файлы .properties.
Файл dev.properties находится в ROOT/resources/dev.properties
том месте, где ROOT является веб-приложением
Dev.properties должен быть в ROOT/resources/dev.properties
dev.properties содержит
test.url="external.url.com"
В моем контроллере я пытаюсь получить доступ к сообщению как
messageSource.getMessage("test.url", new Object[]{}, Locale.getDefault())
Я получаю следующее исключение
org.springframework.context.NoSuchMessageException: No message found under code 'test.url' for locale 'en_US'.
Ответ №1:
Попробуйте просто использовать это в своем XML:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="resources/dev"/>
</bean>
Затем попробуйте поместить ваш файл dev.properties в ROOT/WEB-INF/classes/resources (где ROOT — это корневой каталог разнесенного веб-приложения).
Комментарии:
1. Спасибо за ответ. На самом деле базовые имена представлены в виде списка, поскольку будут добавлены дополнительные свойства файла. И я не могу изменить расположение папки ресурсов. Я обновил вопрос.
2. Ваши пакеты ресурсов должны находиться в пути к классу. ROOT/ веб-приложения отсутствует в пути к классу. Смотрите этот JavaDoc: download.oracle.com/javase/6/docs/api/java/util/… Если вы не можете их переместить, вам может потребоваться написать собственную реализацию MessageSource для их загрузки на основе путей к файлам. static.springsource.org/spring/docs/1.2.9/api/org /…