Интернационализация с использованием 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.

Надеюсь, поможет.

Другие вопросы по тегам