`
zhangwei_david
  • 浏览: 477204 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring MVC 对Locale 的支持

    博客分类:
  • MVC
 
阅读更多

   为了让Web 应用支持国际化,需要识别美国每个用户的区域并根据这个区域显示内容。

   在Spring MVC 中,用户区区域由区域解析器(Locale resovler)识别,区域解析器必须实现LocaleResovler接口。Spring MVC 自带多个LocaleResovler实现,供不同的条件解析区域。

   可以在Web应用的上下文中注册一个类型为LocaleResovler的bean定义区域解析器。 但是这个bean 的id必须是localResolver,便于DispatcherServlet自动发现。 注意每个DispatcherServlet只能注册一个区域解析器。

 

 按照会话属性解析区域:

   使用SessionLocaleResolver解析用户区域,这个解析器检查用户会话中的一个预定义属性解析区域。如果会话属性不存在,这个区域解析器从accept-language HTTP 头中确定默认区域。

<!-- 显示地注册一个会话属性解析区域 -->
	<bean id="localeResolver"
		class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
		<property name="defaultLocale" value="en" />
	</bean>

  defaultLocale属性,在会话属性不存在时返回该值。

 

修改用户区域:

 

注册拦截器:

	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/*" />
			<bean class="com.david.web.interceptor.MeasurementInterceptor" />
		</mvc:interceptor>
		<bean id="localeChangeInterceptor"
	    class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
		<property name="paramName" value="language" />
	</bean>

 如果需要在页面上显示可以从response 中获取Locale 属性

Country:$!{response.locale.country}
<br/>

 http://localhost:8080/WebApp/locale.htm?language=en_DE

结果为:DE

 

如果需要在Controller中获取区域值可以使用:

   String locale = LocaleContextHolder.getLocale().getCountry();

 

 

在注册拦截器的过程中发现:

如果使用这样的格式注册拦截器:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">     
 <property name="interceptors">     
     <list>     
         <bean id="localeChangeInterceptor"
	    class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
		<property name="paramName" value="language" />
	</bean>    
     </list>     
 </property>     
</bean> 

 拦截器不生效,原因是使用了

<mvc:annotation-driven />这个配置

这个配置默认会注册两个Bean

 

AnnotationMethodHandlerAdapter

DefaultAnnotationHandlerMapping

 

分享到:
评论

相关推荐

    Spring MVC Locale 的使用 中文 英文 等语言 切换

    在Spring MVC框架中,`Locale`是用来处理应用程序中的多语言支持的关键组件。它定义了用户的语言和地区设置,例如中文(zh_CN)或英文(en_US)。这篇博客文章将深入探讨如何在Spring MVC应用中实现语言切换功能,以...

    Spring mvc 教程

    - **允许其他MVC实现**:Spring MVC 支持多种不同的 MVC 实现,这为开发者提供了更多的选择性。 - **DispatcherServlet**:这是 Spring MVC 的前端控制器,负责接收 HTTP 请求并分发给合适的后端组件处理。 - **...

    spring mvc

    14. **Internationalization (i18n) & Localization (l10n)**: Spring MVC 支持多语言和本地化,可以通过消息源(MessageSource)和locale resolver来实现。 15. **Async Support**: Spring MVC 提供异步处理支持,...

    Spring MVC学习框架

    12. **国际化与本地化**:Spring MVC 提供了支持多语言的功能,可以根据用户的 locale 选择相应的资源文件。 Spring MVC 是一个强大且灵活的框架,它与 Spring 框架的其他模块(如 Spring JDBC、Spring ORM、Spring...

    Spring MVC 学习笔记 十四 对locale和theme的支持

    在Spring MVC框架中,对`locale`(地区设置)和`theme`(主题)的支持是构建国际化和个性化用户界面的关键部分。这篇学习笔记将深入探讨这两个概念及其在实际开发中的应用。 1. **Locale(地区设置)支持** - `...

    spring MVC数据绑定大全

    如上面源码所示,Spring 自带了一系列默认的`PropertyEditor`实现,支持诸如`CharSet`、`Class`、`Locale`等类型。如果需要自定义转换,可以通过实现`org.springframework.core.convert.converter.Converter`接口或...

    spring-mvc.rar_spring mvc

    11. **国际化和本地化**:Spring MVC提供对多语言的支持,可以通过资源文件和Locale对象实现不同地区的用户体验。 12. **异常处理**:可以自定义异常处理器,统一处理应用中抛出的异常,提高代码的可维护性和用户...

    spring MVC要注意的地方

    - **视图(View)**:呈现数据,Spring MVC支持多种视图技术如JSP、FreeMarker、Thymeleaf等。 - **控制器(Controller)**:处理请求,将模型数据绑定到视图并返回视图名称。 3. **控制器注解**: - 使用`@...

    兼容IE6的spring mvc框架

    4. **前端显示**:在JSP或模板中,通过`${message}`或类似表达式引用消息,Spring MVC会自动根据当前Locale查找对应的消息。 在项目中,"equipWeb"可能是一个包含具体Web应用代码和资源的目录,包括但不限于以下...

    10 扩展之Spring MVC中如何实现国际化i18n慕课专栏1

    2. 当收到请求时,Spring MVC会根据用户请求的`Locale`,通过`ResourceBundleMessageSource`解析对应的属性文件中的键值对。 在Spring MVC中,视图层展示不同`Locale`的数据,通常是通过模型AndView对象将解析后的...

    Spring MVC 详细入门教程(含jar包)

    Spring MVC支持根据用户请求的locale属性来提供不同语言的响应,以及通过ThemeResolver处理主题切换,实现界面风格的多样化。 九、AOP与事务管理 Spring MVC可以结合Spring的AOP(面向切面编程)功能,实现如日志...

    spring MVC jar包

    11. **国际化与本地化**:Spring MVC支持多语言环境,可以根据用户的locale设置提供不同语言的资源文件。 12. **异常处理**:Spring MVC提供了统一的异常处理机制,可以捕获和处理应用程序中抛出的异常,并将其转化...

    Spring mvc 发送邮件功能

    在Spring MVC框架中,实现邮件发送功能通常涉及配置Spring的JavaMailSender接口和使用模板引擎如FreeMarker来创建动态邮件内容。以下是一个详细的步骤指南: 1. **依赖库**: - `javax.mail`:这是Java邮件API的...

    Spring Web MVC入门教程

    文件上传和下载功能是Web应用中常见的需求之一,Spring Web MVC通过MultipartResolver组件提供了对文件上传的支持。对于表单标签的支持,Spring Web MVC不仅简化了传统JSP标签的使用,还扩展了表单相关的处理能力。 ...

    spring mvc 国际化 demo

    在Spring MVC框架中,国际化(i18n)是一个重要的特性,它允许应用程序根据用户的语言和地区提供本地化的信息。这个“spring mvc 国际化 demo”是一个展示如何利用注解实现这一功能的实例。接下来,我们将深入探讨...

    详解Spring mvc的web.xml配置说明

    除了以上提到的配置,`web.xml`还可以包含错误页面定义、安全配置(如`&lt;security-constraint&gt;`)、本地化支持(`locale-encoding-mapping-list`)等。正确的配置有助于提升应用程序的性能、安全性和可维护性。理解并...

    spring mvc配置国际化

    本实例将向您展示如何轻松配置Spring MVC以支持国际化。首先,我们需要了解几个核心概念: 1. **资源文件(Resource Bundle)**:在Java中,资源文件通常是`.properties`格式的文件,用于存储特定语言环境下的文本...

    Spring mvc 实例

    Spring MVC 支持国际化和本地化,可以通过配置资源文件(如 messages.properties)来实现不同语言环境下的显示。在 Controller 中,可以使用 LocaleContextHolder 获取用户请求的 locale,然后根据 locale 来选择...

Global site tag (gtag.js) - Google Analytics