`
hanqunfeng
  • 浏览: 1545510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring对国际化的支持

阅读更多

Spring使用拦截器支持国际化很方便,使用时只需要两个步骤:

一.spring配置

具体配置方式如下:

<!-- 资源文件绑定器,文件名称:messages.properties(没有找到时的默认文件), messages_en.properties(英文),messages_zh_CN.properties(中午),等等-->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basename" value="config.messages.messages" />

</bean>

<!-- 定义本地化变更拦截器 -->
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />

<util:list id="interceptors">
<ref bean="localeChangeInterceptor" />
</util:list>

<!-- 定义注解URL映射处理器 ,所有的请求映射必须关联本地化拦截器-->
<bean id="urlMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors" ref="interceptors" />
<property name="order" value="1"></property>
</bean>

这时还需要本地化处理器进行处理,有三种处理器,如下:

<!-- 定义本地化处理器 -->

1.基于session

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

2.基于请求

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"/>
3.基于cookie

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

以上三种处理器理论上配置任意一个就可以,不过有两点需要注意:

1)第二个不能直接使用,需要通过继承重写相应的方法,如下:

public class MyLocaleResolver extends AcceptHeaderLocaleResolver{

private Locale myLocal;
public Locale resolveLocale(HttpServletRequest request) {
return myLocal==null?request.getLocale():myLocal;
}
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
myLocal = locale;
}


}

修改配置文件中的localeResolver配置,class指向这个类就可以了。

2)第一与第三个用法相同,只不过前者使用session,session过期就需要重新设置,而后者使用cookie,可以根据项目的具体情况进行选择。

一般来说,使用第一种和第三种比较常见。

二.使用方法

当不做处理时默认会使用浏览器自己的语言设置,如果想改变语言,只需要在请求后面加上一个参数即可,

默认的参数名为locale,里面放的就是你的提交参数,如:en_US,zh_CN之类的,

所以,只需要在页面上加上相应的链接即可,如下:

<a href="xxx.do?locale=zh_CN">中文</a>

<a href="xxx.do?locale=en">英文</a>

页面中使用jstl或spring标签,如下:

<fmt:message key="test.app"/>
<s:message code="test.app"/>

无论使用哪种处理器,locale设置过一次就可以了,不需要每个连接后面都加上locale参数。

分享到:
评论

相关推荐

    Spring mvc 国际化

    Spring MVC提供了一套完善的国际化支持机制,可以方便地对Web应用中的文本信息进行多语言转换。 要实现Spring MVC的国际化,通常需要以下几个步骤: 1. 创建国际化资源文件:在Spring MVC项目中,创建一个或多个...

    spring显示国际化信息

    在Spring框架中,国际化(Internationalization,简称i18n)是为支持多语言环境而设计的功能,使得应用程序能够根据用户所在的地域和语言提供相应的显示内容。本示例将详细介绍如何在Spring应用中实现国际化。 首先...

    Spring实现国际化的一个小例子

    Spring提供了`NumberFormat`和`DateFormat`的国际化支持,可以通过`SimpleDateFormat`和`DecimalFormat`进行定制。 通过以上步骤,你就可以在Spring应用中实现一个基本的国际化功能。记得在实际项目中,需要考虑更...

    Spring国际化案例

    在Spring框架中,国际化(Internationalization,简称i18n)是为支持多语言环境而设计的功能,使得应用程序能够根据用户的地区或语言设置提供相应的显示内容。本案例将深入探讨如何在Spring应用中实现国际化。 首先...

    spring国际化实例

    此外,`Thymeleaf`等模板引擎也支持Spring的国际化,可以直接在模板中使用`#{greeting}`这样的表达式来获取本地化消息。 总的来说,Spring框架通过`ResourceBundle`和`MessageSource`提供了一套强大的机制,使...

    spring 实现国际化的全部代码

    ### Spring 实现国际化 (i18n) 的关键技术点 #### 一、国际化(i18n)在Spring中的重要性及应用场景 国际化(Internationalization,简称i18n)是指设计和开发软件产品时,使得产品能在各种语言和区域环境中进行...

    Spring Boot 国际化(i18n)配置demo.zip

    通过这个Spring Boot国际化配置的示例,你可以了解并实践如何为你的应用添加多语言支持,从而为全球用户提供更好的体验。记得根据你的实际需求调整配置,并确保资源文件的键值对与代码中的引用相匹配。此外,还可以...

    spring mvc 国际化 demo

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

    spring boot国际化 i18n

    Spring Boot的国际化(i18n)功能使得开发者可以轻松地为应用程序提供多语言支持,以便用户可以根据他们的偏好选择不同的语言界面。以下是对这个主题的详细讲解。 首先,我们需要了解i18n这个术语,它是...

    spring国际化项目

    Spring框架是Java开发中广泛...这个"spring国际化项目"实例提供了一个完整的实践场景,帮助开发者更好地理解和掌握Spring中的i18n支持。在实际开发中,国际化不仅可以提高用户体验,也是满足全球用户需求的重要手段。

    spring mvc 3 国际化(下)——简单自定义操作

    对于响应式Web应用,Spring WebFlux同样支持国际化,可以通过`WebSession`或`ServerWebExchange`来设置和获取`Locale`。 以上就是Spring MVC 3中进行国际化的基本步骤和自定义操作的要点。在实际开发中,可能还...

    SpringBoot 配置国际化完整源码

    在Spring Boot应用中,配置国际化是一项重要的任务,它允许我们为不同的地区和...以上就是Spring Boot配置国际化的基本知识和实现方式,通过这个源码项目,你可以深入理解并实践这些概念,为你的应用提供全球化支持。

    Spring2.5的国际化配置

    Spring 2.5 的国际化配置是一项关键功能,它允许应用程序根据用户浏览器的语言设置显示相应的文本。国际化使得软件能够适应全球范围内的用户,提供多语言支持。以下是对标题和描述中涉及知识点的详细解释: 1. **...

    spring boot mybatis 国际化 拦截器

    在本文中,我们将深入探讨如何在Spring Boot应用中整合MyBatis,实现MySQL数据库连接,以及如何利用Spring MVC和拦截器来实现国际化(i18n)功能。此外,我们还将提及IIS 12作为可能的Web服务器选项。 首先,Spring...

    编程语言+JAVAspring+国际化+多语言支持

    编程语言+JAVAspring+国际化+多语言支持**:这是一个关于JAVAspring编程语言的国际化的多语言支持的资源,适合有一定JAVAspring基础的开发者。它介绍了JAVAspring的国际化的概念、原理和作用,以及如何使用JAVA...

    Nacos实现SpringBoot国际化的增强

    一. 概述 阅读本文之前,你应该了解过SpringBoot的国际化实现与原理,在...如果使用传统的硬编码方式,是无法做到国际化支持的。 所以通俗来讲,国际化就是为每种语言配置一套单独的资源文件,保存在项目中,由系统根

    spring mvc配置国际化

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

    五 Spring 国际化问题

    总结起来,Spring的国际化支持是通过`MessageSource`接口和资源文件实现的,它可以方便地集成到Spring MVC项目中,提供多语言的用户体验。正确配置和使用这些机制,能确保我们的应用程序能够适应全球化的市场需求。...

    spring国际化jsp

    标题 "spring国际化jsp" 暗示我们讨论的是在Spring框架中实现Web应用程序的国际化(i18n)过程,特别是在使用JSP(JavaServer Pages)时。这通常涉及到资源包(properties文件)的使用,以存储不同语言的文本字符串...

    09 Spring IoC容器ApplicationContext如何实现国际化慕课专栏1

    在Spring框架中,ApplicationContext是IoC容器的核心,它不仅负责管理Bean,还提供了实现国际化(i18n)的功能。国际化使应用程序能够适应不同语言和地区...总之,Spring的国际化支持使得开发多语言应用变得简单易行。

Global site tag (gtag.js) - Google Analytics