簡體   English   中英

spring3國際化無法正常工作

[英]spring3 internationalization not working properly

我是spring的新手,我在項目中使用了spring國際化,下面是我的配置

<bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="WEB-INF/properties/messages" />
         <property name="defaultEncoding" value="UTF-8" />
    </bean>

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <property name="defaultLocale" value="en"/>
</bean>

    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="lang" />
   </bean>


<bean id="handlerMapping"
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="interceptors">
        <ref bean="localeChangeInterceptor" />
    </property>
</bean>

在屬性文件夾中,我有三個文件。 messages.properties

label.username=user

messages_en.properties

label.username=hddhd

messages_es.properties

label.username=lalal

我使用<spring:message code="label.username" />此標記顯示消息。

但是,此總是打印來自messages.properties的值。 它總是打印用戶。

甚至我給URL如下

[http://localhost:8080/Project/?lang=en
http://localhost:8080/Project/?lang=es][1]

為什么不從messages_en和messages_es文件中獲取值

任何幫助將不勝感激!!!

使用<mvc:annotation-driven />配置DefaultAnnotationHandlerMapping將不起作用。 您應該使用<mvc:interceptors />元素注冊攔截器。

<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
</mvc:interceptors>

DefaultAnnotationHandlerMapping ,在<mvc:annotation-driven />情況下,它在Spring的較新版本(2.5版之后的所有版本)中也不再使用DefaultAnnotationHandlerMapping

不要忘記添加這一行

<%@ page contentType="text/html;charset=UTF-8" %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM