为了让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`是用来处理应用程序中的多语言支持的关键组件。它定义了用户的语言和地区设置,例如中文(zh_CN)或英文(en_US)。这篇博客文章将深入探讨如何在Spring MVC应用中实现语言切换功能,以...
- **允许其他MVC实现**:Spring MVC 支持多种不同的 MVC 实现,这为开发者提供了更多的选择性。 - **DispatcherServlet**:这是 Spring MVC 的前端控制器,负责接收 HTTP 请求并分发给合适的后端组件处理。 - **...
14. **Internationalization (i18n) & Localization (l10n)**: Spring MVC 支持多语言和本地化,可以通过消息源(MessageSource)和locale resolver来实现。 15. **Async Support**: Spring MVC 提供异步处理支持,...
12. **国际化与本地化**:Spring MVC 提供了支持多语言的功能,可以根据用户的 locale 选择相应的资源文件。 Spring MVC 是一个强大且灵活的框架,它与 Spring 框架的其他模块(如 Spring JDBC、Spring ORM、Spring...
在Spring MVC框架中,对`locale`(地区设置)和`theme`(主题)的支持是构建国际化和个性化用户界面的关键部分。这篇学习笔记将深入探讨这两个概念及其在实际开发中的应用。 1. **Locale(地区设置)支持** - `...
如上面源码所示,Spring 自带了一系列默认的`PropertyEditor`实现,支持诸如`CharSet`、`Class`、`Locale`等类型。如果需要自定义转换,可以通过实现`org.springframework.core.convert.converter.Converter`接口或...
11. **国际化和本地化**:Spring MVC提供对多语言的支持,可以通过资源文件和Locale对象实现不同地区的用户体验。 12. **异常处理**:可以自定义异常处理器,统一处理应用中抛出的异常,提高代码的可维护性和用户...
- **视图(View)**:呈现数据,Spring MVC支持多种视图技术如JSP、FreeMarker、Thymeleaf等。 - **控制器(Controller)**:处理请求,将模型数据绑定到视图并返回视图名称。 3. **控制器注解**: - 使用`@...
4. **前端显示**:在JSP或模板中,通过`${message}`或类似表达式引用消息,Spring MVC会自动根据当前Locale查找对应的消息。 在项目中,"equipWeb"可能是一个包含具体Web应用代码和资源的目录,包括但不限于以下...
2. 当收到请求时,Spring MVC会根据用户请求的`Locale`,通过`ResourceBundleMessageSource`解析对应的属性文件中的键值对。 在Spring MVC中,视图层展示不同`Locale`的数据,通常是通过模型AndView对象将解析后的...
Spring MVC支持根据用户请求的locale属性来提供不同语言的响应,以及通过ThemeResolver处理主题切换,实现界面风格的多样化。 九、AOP与事务管理 Spring MVC可以结合Spring的AOP(面向切面编程)功能,实现如日志...
11. **国际化与本地化**:Spring MVC支持多语言环境,可以根据用户的locale设置提供不同语言的资源文件。 12. **异常处理**:Spring MVC提供了统一的异常处理机制,可以捕获和处理应用程序中抛出的异常,并将其转化...
在Spring MVC框架中,实现邮件发送功能通常涉及配置Spring的JavaMailSender接口和使用模板引擎如FreeMarker来创建动态邮件内容。以下是一个详细的步骤指南: 1. **依赖库**: - `javax.mail`:这是Java邮件API的...
文件上传和下载功能是Web应用中常见的需求之一,Spring Web MVC通过MultipartResolver组件提供了对文件上传的支持。对于表单标签的支持,Spring Web MVC不仅简化了传统JSP标签的使用,还扩展了表单相关的处理能力。 ...
在Spring MVC框架中,国际化(i18n)是一个重要的特性,它允许应用程序根据用户的语言和地区提供本地化的信息。这个“spring mvc 国际化 demo”是一个展示如何利用注解实现这一功能的实例。接下来,我们将深入探讨...
除了以上提到的配置,`web.xml`还可以包含错误页面定义、安全配置(如`<security-constraint>`)、本地化支持(`locale-encoding-mapping-list`)等。正确的配置有助于提升应用程序的性能、安全性和可维护性。理解并...
本实例将向您展示如何轻松配置Spring MVC以支持国际化。首先,我们需要了解几个核心概念: 1. **资源文件(Resource Bundle)**:在Java中,资源文件通常是`.properties`格式的文件,用于存储特定语言环境下的文本...
Spring MVC 支持国际化和本地化,可以通过配置资源文件(如 messages.properties)来实现不同语言环境下的显示。在 Controller 中,可以使用 LocaleContextHolder 获取用户请求的 locale,然后根据 locale 来选择...