春天i18n不工作

时间:2018-05-15 10:45:35

标签: java spring-mvc internationalization context.xml

您好我正在尝试使用i18n:Spring-MVC-Maven由context.xml项目配置

我有文件(路径:\ src \ main \ resources):

  

messages.properties

     

messages_pl.properties

当只有一个文件时,该应用程序才能正常工作 - >读 < spring:messages ...> fome the one。 但是当有2个文件时,应用程序只能读取 messages_pl.properties ?lang = en

的DispatcherServlet-context.xml中

/* [..] */
<mvc:annotation-driven enable-matrix-variables="true"/>
<mvc:resources  location="/resources/"  mapping="/resource/**"/>
<context:component-scan base-package="com.ehr" />

<mvc:interceptors>
    <bean class="com.ehr.webstore.interceptor.PerformanceMonitorInterceptor"/>
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang"/>
    </bean>
</mvc:interceptors>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="messages" />
    <property name="defaultEncoding" value="UTF-8"/>
</bean>
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="en"/>
    </bean>
/* [...] */

webpage.jsp

< div class="pull-right" style="padding-right:50px">
    < a href="?lang=en" >en</a>|<a href="?lang=pl" >pl< /a>
< /div>

1 个答案:

答案 0 :(得分:0)

好的,我找到了问题的根源。总而言之,它是FallbackToSystemLocale属性,默认情况下设置为“true”。有关更多信息,请查看ResourceBundleMessageSource doc。

解决方案: 将属性<property name="fallbackToSystemLocale" value="false"/>添加到<bean id="messageSource" [...] ResourceBundleMessageSource">