码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC之本地化和国际化

时间:2014-08-29 17:34:11      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   使用   io   strong   ar   art   div   

 spring框架的大部分都支持国际化,就像springMVC一样。DispatcherServlet使你能够动态的通过客户端的本地语言进行配置。这是通过LocaleResolver完成的。
   当一个请求到达,DispatcherServlet就会寻找LocaleResolver,如果找到就会试图通过它进行本地化。通过RequestContext.getLocale()方法我们可以得到locale resolver解释的本地化语言。
   Locale resolvers和拦截器定义在org.springframework.web.servlet.i18n包中,并且可以在application context中进行配置。下面是本地化解析器的配置部分。

一、AcceptHeaderLocaleResolver
   这个Locale resolvers依据 accept-language请求头信息进行解析处理,通常这个头信息包含客户端操作信息的本地标示。
二、CookieLocaleResolver
   这个解析器通过cookie寻找客户端特定的语言信息。如果找到,则使用这个配置。使用这个Locale resolvers的一些属性,我们可以指定这个cookie的名称甚至是最大存活时间。下面是一个配置实例:
e.g.

[html] view plaincopy
 
  1. <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">  
  2.   
  3.     <property name="cookieName" value="clientlanguage"/>  
  4.      
  5.     <!-- in seconds. If set to -1, the cookie is not persisted (deleted when browser shuts down) -->  
  6.     <property name="cookieMaxAge" value="100000">  
  7.   
  8. </bean>  

下面是CookieLocaleResolver的属性列表
 property default   description
      cookieName classname+LOCAL  cookie的名称
 cookieMaxAge Integer.MAX_INT  最大存活时间
 cookiePath /   限制可以访问cookie的程序路径。

三、 SessionLocaleResolver
   这个解析器允许你通过session解析本地设置。
四、LocaleChangeInterceptor
   通过配置LocaleChangeInterceptor,我们可以动态改变本地语言。它会检测请求中的参数并且改变地区信息。它调用LoacalResolver.setLocal()进行配置。下面的例子显示了,调用所有的*.view资源包含一个名字叫做siteLanguage的变量,来改变地区信息。所以下面的URL:http://www.sf.net/home.view?siteLanguage=nl 将会改变站点语言为荷兰语。
e.g.

[html] view plaincopy
 
    1.  <bean id="localeChangeInterceptor"  
    2.       class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">  
    3.     <property name="paramName" value="siteLanguage"/>  
    4. </bean>  
    5.   
    6. <bean id="localeResolver"  
    7.       class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/>  
    8.   
    9. <bean id="urlMapping"  
    10.       class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
    11.     <property name="interceptors">  
    12.         <list>  
    13.             <ref bean="localeChangeInterceptor"/>  
    14.         </list>  
    15.     </property>  
    16.     <property name="mappings">  
    17.         <value>/**/*.view=someController</value>  
    18.     </property>  
    19. </bean

springMVC之本地化和国际化

标签:des   blog   http   使用   io   strong   ar   art   div   

原文地址:http://www.cnblogs.com/isaacxu/p/3945139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!