0

我们正在尝试使用 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"/>

同样在创建的战争中,我们在 WEB-INF/messages 文件夹下有 msgs.properties 文件。

非常感谢帮助我们识别我们所犯的错误。谢谢你。

4

3 回答 3

0

我使用的和你一样,我可以使用 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 中。

希望能帮助到你。

于 2013-10-16T14:24:20.240 回答
0

Using FMT taglibraries we could not solve the issue. I believe it has got some thing to do with the jstl jar and taglibs which we are using with JBoss 7.1.1 server.

We started using spring tlds for displaying the messages. All is working fine now. Thanks for the help.

于 2013-10-17T05:55:08.910 回答
0

Use /WEB-INF/messages/msgs instead of WEB-INF/messages/msgs

Simply, add '/' at the beginning of path.

于 2019-05-19T11:40:00.153 回答