Springmvc框架本地化和国际化

springMVC的本地化和国际化

   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 plain  copy
  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 plain  copy
  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> 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值