yogjun / myblog

0 stars 0 forks source link

springmvc国际化配置使用 #3

Closed yogjun closed 5 years ago

yogjun commented 6 years ago

一:配置文件 首先在web-content.xml这个上下文里添加配置:

<bean id="localeResolver"
    class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
<!-- 国际化资源文件 -->
<!-- “messageSource”配置的是国际化资源文件的路径,”classpath:messages”指的是classpath路径下的messages_zh_CN.properties文件和messages_en_US.properties文件。 -->
<bean id="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:messages" />
</bean><!-- 该拦截器通过名为”lang”的参数来拦截HTTP请求,使其重新设置页面的区域化信息 -->
<mvc:interceptors>
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
</mvc:interceptors>

同时在上方配置的对应路径添加配置文件,默认为中文。例子中配置的路径对应为:

Properties文件中会自动转码 二:页面使用

三:java代码使用 @Autowired private MessageSource messageSource; Locale locale= Locale.getDefault(); String projectName=messageSource.getMessage("label.project.name", null, locale); 四:语言的切换 request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,new Locale("zh","CN")); request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,new Locale("en","US"));