日记 - spring配置了国际化,后台如何知道当前页面是何种语言

idea13.1.1+maven3+tomcat7.0.53.

spring3.2.8+hibernate4

 

由于spring支持国际化,所以在application.xml中进行配置就可以使用了。

    <mvc:interceptors>

        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">

            <property name="paramName" value="language"/>

        </bean>

    </mvc:interceptors>

 

    <bean id="localeResolver"

          class="org.springframework.web.servlet.i18n.SessionLocaleResolver">

        <property name="defaultLocale" value="zh_CN"/>

    </bean>

 

下面这段配置要将路径指向你的properties文件,什么properties文件?下面揭晓

    <bean id="messageSource"

          class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

        <property name="basename" value="classpath:messages"/>

        <property name="defaultEncoding" value="UTF-8"/>

        <property name="useCodeAsDefaultMessage" value="true" />

    </bean>

 

配置后大家需要了解以下几点,一般的国际化是用一个类叫Locale来做的,而上面这些配置是把Locale放到了session里面。你问我怎么知道的?我因为想取出这个保存进去的Locale,但是找不到这个session的name,所以跑去看源码,然后就知道了。

 

配置以后你还需要3个properties文件分别来装中文内容、英文内容、默认内容(就是你一进网页默认显示的内容)。命名方式要像下图一样,不然你的框架找不到你的properties文件的。



 

properties中的内容以下图的key=value的模式来写,注意!!中英默3份properties文件里的key要完全相同,只有value是不同的。



 

最后该来看看如何让中英在页面上替换

 

<a href="?language=zh_CN">中文</a> | <a href="?language=en_US">English</a>

通过上面这两个a标签来简单的切换,其实也就是在地址后面加个  ?language=zh_CN/en_US

 

<spring:message code="将key放在这个双引号里" />

然后上面这个标签就可以用来替换你原文中需要中英切换的内容了

 

本文着重的不是中英切换,而是如何在后台取得session中保存的中英标识。

String LOCALE_SESSION_ATTRIBUTE_NAME = SessionLocaleResolver.class.getName() + ".LOCALE";

String locale = request.getSession().getAttribute(LOCALE_SESSION_ATTRIBUTE_NAME);

这样就可以了

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值