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

idea13.1.1+maven3+tomcat7.0.53.

spring3.2.8+hibernate4

 

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

   

       

           

       

   

 

   

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

       

   

 

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

   

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

       

       

       

   

 

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

 

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



 

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


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

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

 

中文 | English

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

 

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

 

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

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

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

这样就可以了

 

 

你可能感兴趣的:(JAVA)