Интернационализация с использованием Spring ResourceBundleMessageSource и FMT
Мы пытаемся реализовать интернационализацию, используя Spring ResourceBundleMessageSource и FMT. Но когда мы используем его в JSP, страницы отображают значение как " message.key", Можете ли вы помочь нам решить эту проблему? Очень ценю ваши ответы.
Ниже приведены настройки:
запись spring-servlet.xml
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>WEB-INF/messages/msgs</value>
</property> </bean>
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName">
<value>locale</value>
</property> </bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
</bean>
В JSP мы добавили импортированные
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:message key="message.key"/>
Также в созданной войне у нас есть файл msgs.properties в папке WEB-INF/messages.
Очень ценю помощь в выявлении ошибки, которую мы совершаем. Спасибо.
2 ответа
Используя талибрины FMT, мы не смогли решить проблему. Я считаю, что это как-то связано с jstl jar и taglibs, которые мы используем с сервером JBoss 7.1.1.
Мы начали использовать Spring TLD для отображения сообщений. Теперь все работает нормально. Спасибо за помощь.
Используйте /WEB-INF/messages/msgs вместо WEB-INF / messages / msgs
Просто добавьте "/" в начале пути.
Я использую то же, что и вы, и я могу получить сообщения из файла свойств с помощью fmt:message. Можете ли вы попробовать изменить пакет ресурсов для этого:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:messages</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8" />
<property name="fallbackToSystemLocale" value="false"></property>
</bean>
Свойства хранятся в src/main/resources.
Надеюсь, поможет.