个人学习参考所用,勿喷!
4.区域解析和外部化区域文本信息
4.1)区域解析。Spring MVC 有很多内置的实现了LocaleResolver(必须实现该接口才能用户区域)的区域解析器。
按照HTTP请求头标来解析的解析器AcceptHeaderLocaleResolver,由于这个解析器是浏览器根据其所在的操作系统的区域社会自来进行设置的,所以这个解析器也不能修改用户的区域。
根据回话属性解析区域:
<bean id="sessionLocaleResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaulteLocale" valuezh" />
</bean>
根据Cookie解析区域:
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieName" value="language" />
<property name="cookieMaxAge" value="3600" />
<property name="defaultLocale" value="en" />
</bean>
修改用户的区域需要调用区域修改拦截器 LocaleChangeInterceptor。如下所设定设定paramName属性来设定拦截请求中的特定参数(这里是language)确定区域。既然是拦截器那就需要注册到拦截器 Bean 中,这里是注册到了DefaultAnnotationHandlerMapping Bean中:
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language" />
</bean>
<!-- Annotation handlers (Applied by default to ALL @controllers -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="order" value="1" />
<!-- Interceptors are applied to all annotated controllers -->
<property name="interceptors">
<list>
<ref bean="measurementInterceptor" />
<ref bean="localeChangeInterceptor" />
</list>
</property>
</bean>
然后可以通过如下的连接方式来访问:
http://localhost:7070/Spring3MVC/welcome?language=en
http://localhost:7070/Spring3MVC/welcome?language=zh
4.2)外部化区域文本信息。
为了使用国际化信息源,Spring MVC 必须实现MessageSource接口。当然框架内部有许多内置的实现类。我们需要做的是注册一个MessageSource类型的Bean。Bean的名称必须为messageSource,从而方便DispatcherServlet自动检测它。每个DispatcherServlet只能注册一个信息源。例如:
<!-- Message .properties sources -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages" />
</bean>
然后我们需要在webapp工程classpath目录下(这里是src/main/resources)建立messages_zh.properties、messages_en.properties两个个分别代表中文、英文环境的信息源文件:
welcome.title=欢迎
welcome.title=Welcome
现在重写welcome.jsp,这里一定要加入<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %> ,来解决对中文乱码的解决:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!-- 添加页面编码设置来解决编码问题 -->
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
<title><spring:message code="welcome.title" text="Welcome" /></title>
</head>
<body>
<h2><spring:message code="welcome.message" text="Welcome to Court Reservation System" /></h2>
Today is <fmt:formatDate value="${today}" pattern="yyyy-MM-dd" />.
<hr />
Handling time : ${handlingTime} ms
<br />
Locale : ${pageContext.response.locale}
</body>
</html>
这是再使用 http://localhost:7070/Spring3MVC/welcome访问welcome.jsp,出现的是“欢迎体育中心订座系统”的中文信息(楼主在瓷国)。
参考:
juyon的blog:《spring3 MVC国际化支持之中文乱码》
Gary Mark等的书籍:《Spring Recipes》2ed
分享到:
相关推荐
本资源"Spring4Spring-MVc.rar"提供了一个基于Maven3、Spring4和Spring MVC 4的整合模板,旨在帮助开发者快速搭建一个高效、可扩展的Web应用程序。 1. **Spring MVC 4**:Spring MVC是Spring框架的一部分,用于构建...
而`spring-framework-2.5.6-with-docs.zip`可能包含了Spring 2.5.6的源码和文档,帮助开发者了解Spring MVC的内部实现和最佳实践。 总之,这个压缩包提供了开发基于Spring MVC和Hibernate的Java Web应用所需要的...
首先,"spring-mvc-showcase" 是 SpringSource 提供的一个示例应用,用于展示 Spring MVC 的各种特性和最佳实践。这个项目包含了一系列精心设计的示例,涵盖了从基本请求处理到复杂业务逻辑的多种场景,是学习 ...
**Spring3 MVC 深入研究*...通过深入理解其核心机制和最佳实践,开发者可以构建高效、可维护的Web应用。随着Spring框架的不断演进,如Spring Boot和Spring Cloud等,Spring3 MVC的理念和设计模式仍具有很高的参考价值。
《网上书城 Spring-MVC》项目是基于Spring-MVC框架构建的一个典型电子商务平台,它展示了如何使用Spring-MVC来实现高效、...开发者可以通过学习和实践这个项目,深入理解Spring-MVC的机制和最佳实践,提升Web开发能力。
** Maven构建Spring3 MVC与Hibernate整合详解 ** 在软件开发中,Maven是一个强大的...在实际开发中,还需要结合最佳实践和具体需求进行调整和优化。通过阅读博文链接中的内容,可以获取更具体的实现细节和示例代码。
通过仔细阅读和分析这些源代码,开发者不仅可以提升对Spring MVC框架的理解,还能学习到设计模式、性能优化和最佳实践,从而在实际项目中更有效地应用Spring MVC。无论是初学者还是经验丰富的开发者,都应该充分利用...
本项目"spring4-mvc-gradle"就是一个将两者完美结合的DEMO,旨在帮助开发者理解和实践Spring MVC 4.1.6与Gradle的集成应用。 首先,我们来深入了解一下Spring MVC 4.1.6。Spring MVC是Spring框架的核心组件之一,它...
《Spring 2.0 核心技术与最佳实践》是由知名IT教育家廖雪峰编写的教程,旨在为从初学者到高级工程师提供全面而深入的Spring 2.0框架理解与应用指导。Spring框架是Java开发中的核心工具,尤其在企业级应用中广泛使用...
以上是Spring MVC的基本知识点,这份学习指南可能会详细讲解这些内容,并提供实际案例和最佳实践,帮助读者从基础到高级全面掌握Spring MVC。通过深入学习,开发者能够更好地构建高效、可扩展的Web应用。
在Web应用开发中,Spring3 MVC框架和Ajax技术的结合使用能够极大地提升用户体验,实现页面的无刷新更新。本文将深入探讨如何在Spring3 MVC项目中集成Ajax,以便更好地理解这两者的协同工作原理。 **一、Spring3 MVC...
通过学习本书,开发者不仅可以掌握Java EE开发的基本技能,还能深入理解Spring、Spring MVC和MyBatis这三个框架的原理和最佳实践。这将有助于他们在实际工作中构建出更加高效、可扩展的后端应用,同时也能提升团队...
通过深入理解Spring的核心技术和最佳实践,开发者可以创建出高效、可维护的Web应用程序。在实际开发中,掌握HTTP协议原理、Servlet组件的使用以及Spring MVC的配置和编程模型,对于优化代码结构和提升开发效率至关...
4. **实战与最佳实践** - 如何编写Controller,包括注解驱动和XML配置方式。 - RESTful API设计与Spring MVC的结合。 - 数据绑定和验证,如@ModelAttribute和Validator的使用。 - 异常处理,全局异常处理器...
在实际应用中,我们还会涉及到一些高级特性和最佳实践,例如: - **AOP(面向切面编程)**:可以用来实现事务管理、日志记录等功能,通过定义切面和通知,将这些通用逻辑与业务代码解耦。 - **Spring Data JPA**:...
《精通Spring Web MVC》 Spring Web MVC是Spring框架的核心组件之一,它为构建基于Java的Web应用程序提供了模型-...通过阅读《Mastering Spring Webmvc》及参考博文,可以深入理解Spring MVC的内部机制和最佳实践。
在IT行业中,Spring MVC 和 MyBatis 是两个非常重要的框架,它们分别负责Web应用程序的控制器层和数据访问层。Spring MVC 提供了模型-视图-控制器架构模式的实现,而MyBatis则是一个轻量级的SQL映射框架,用于简化...