`
wang_decheng
  • 浏览: 47424 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
文章分类
社区版块
存档分类
最新评论

spring的本地化解析器

阅读更多

Spring架构的绝大部分都支持国际化,Spring的web框架也不例外。DispatcherServlet 允许你使用客户端本地化信息自动解析消息。 这个工作由LocaleResolver 完成。

当收到请求时,DispatcherServlet 寻找一个本地化解析器,如果找到它就使用它设置本地化信息。 通过RequestContext.getLocale() 方法, 你总可以获取由本地化解析器解析的客户端的本地化信息。

除了自动的本地化解析以外,你还可以将一个拦截器置于处理器映射中(参考 第 13.4.3 节 “拦截器(HandlerInterceptor )” ),以便在某种环境下可以改变本地化信息,例如,可以基于请求中的参数变更本地化信息。

本地化解析器和拦截器都定义在org.springframework.web.servlet.i18n 包中,你可以在应用的上下文中配置它们。下文介绍了一些Spring提供的本地化解析器。

这个本地化解析器检查客户端中的Cookie 是否包含本地化信息。如果有的话,就使用。当你配置这个解析器的时候,你可以指定cookie名,以及cookie的最长生存期(Max Age)。 下面这个例子定义了一个CookieLocaleResolver

<bean id="localeResolver"></bean>

    <property value="clientlanguage" name="cookieName"></property>
    
    <!-- -->


    <property value="100000" name="cookieMaxAge">

</property>

表 13.6. CookieLocaleResolver 的属性

属性 缺省值 描述
cookieName classname + LOCALE cookie的名字。
cookieMaxAge Integer.MAX_INT cookie在客户端存在的最长时间。如果该值是-1,这个cookie只被保留在内存中,当客户关闭浏览器时,这个cookie就不存在了。
cookiePath / 通过这个参数,你可以将该cookie的作用限制在一部分特定的。具体地说,只有该目录(cookiePath)及其子目录下的页面可以使用这个cookie。

你可以使用LocaleChangeInterceptor 修改本地化信息。这个拦截器需要被添加到处理器映射中(参考 第 13.4 节 “处理器映射(handler mapping)” )。它可以侦测请求中某个特定的参数,然后调用上下文中的LocaleResolver中的 setLocale()方法,相应地修改本地化信息。

<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" id="localeChangeInterceptor"></bean>
    <property value="siteLanguage" name="paramName"></property>


<bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver
" id="localeResolver"></bean>

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" id="urlMapping"></bean>
    <property name="interceptors">
        <list></list>
            <ref bean="localeChangeInterceptor"></ref>
        
    </property>
    <property name="mappings">
        <value></value>/**/*.view=someController
    </property>

在上面这个例子中,所有对*.view 资源的请求,只要包含参数siteLanguage ,都会改变本地化信息。比如下面这个请求http://www.sf.net/home.view?siteLanguage=nl 会将网站语言修改为荷兰语。

分享到:
评论

相关推荐

    Spring MVC 3.0实战指南.ppt

    本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 静态资源处理:原理 静态资源处理:如何配置? ...

    Spring3MVC注解教程.ppt

    本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 静态资源处理:原理 静态资源处理:如何配置? 静态资源处理:如何配置? 物理...

    Spring 2.0 开发参考手册

    13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题...

    spring.net中文手册在线版

    4.12.1.注册自定义解析器 4.12.2.创建自定义资源处理器 4.12.3.配置类型别名 4.12.4.注册类型转换器 4.13.IApplicationContext接口的扩展功能 4.13.1.上下文继承 4.13.2.使用IMessageSource接口 4.13.3.在Spring.NET...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题 13.7.3...

    SPRING入门

    应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)...

    Spring API

    13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题...

    spring chm文档

    13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题...

    Spring中文帮助文档

    13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题...

    Web框架-spring

    Spring的web框架包括可配置的处理器(handler)映射、视图(view)解析、本地化(local)解析、主题(theme)解析以及对上传文件解析。处理器是对Controller接口的实现,该接口仅仅定义了ModelAndView handleRequest...

    Spring.3.x企业应用开发实战(完整版).part2

    15.5 本地化解析 15.5.1 本地化概述 15.5.2 使用CookieLocaleResolver 15.5.3 使用SessionLocaleResolver 15.5.4 使用LocaleChangeInterceptor 15.6 文件上传 15.6.1 配置MultipartResolver 15.6.2 编写控制器和文件...

    spring mvc 思维导图

    Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。...

    springmvc demo

    应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)...

    21道Java Spring MVC综合面试题详解含答案(值得珍藏)

    Spring MVC是Spring框架中的一部分,全称是Spring Web MVC,主要用于实现MVC设计模式的Web框架。它分离了控制器、模型对象、过滤器以及处理程序...此外,Spring MVC还支持本地化/国际化(Locale)解析及文件上传等。

    spring security 参考手册中文版

    9.6本地化 87 10.核心服务 89 10.1 AuthenticationManager,ProviderManager和AuthenticationProvider 89 10.1.1成功认证时清除证书 91 10.1.2 DaoAuthenticationProvider 91 10.2 UserDetailsService实现 92 10.2.1...

    Spring3.x企业应用开发实战(完整版) part1

    15.5 本地化解析 15.5.1 本地化概述 15.5.2 使用CookieLocaleResolver 15.5.3 使用SessionLocaleResolver 15.5.4 使用LocaleChangeInterceptor 15.6 文件上传 15.6.1 配置MultipartResolver 15.6.2 编写控制器和文件...

    spring-rest-exception-handler, 一个方便的RESTful api Spring MVC 异常.zip

    spring-rest-exception-handler, 一个方便的RESTful api Spring MVC 异常 spring REST异常处理程序 这个项目的目的是为for提供一个方便的异常处理程序( 解析器),它满足了错误响应的最佳实践。 处理自定义异常。...

    SpringBoot+Mybatis+SpringSecurity+Bootstrap+Layui开发的java web轻量级小巧视频网站系统

    3. 视图解析器采用了thymeleaf 4. 前段UI框架采用BootStrap4.0.0, 配合Layui UI经典模块化前端框架 5. 在线播放器采用CkPlayer6.7 6. 百度多平台分享插件 数据库文件 链接:...

    HplusApp:完成了一个名为HpussApp的String MVC应用程序,可帮助您在公司的库存中查找产品。用户可以注册,登录并检查产品的可用性。使用JSP,CSS,Spring表单标签,Java,Spring MVC,Spring Boot,JPA,Hibernate,Mysql,Maven,Git,JSON,XML开发的应用程序。使用的工具SpringToolSuit,Mysql-WorkBench,Postman

    完成了一个名为HplussApp的String MVC应用程序,可帮助您在公司的库存中查找产品。...本地化错误消息。 Spring MVC中的异常处理。使用视图解析器。使用拦截器。定义主题。 Spring MVC REST控制器。

    跟我学SpringMVC

    应用控制器其 实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动 作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法...

Global site tag (gtag.js) - Google Analytics