一、Spring MVC国际化简介
       程序国际化是商业系统的一个基本要求,因为今天的软件系统不再是简单的单机程序,往往都是一个开放的系统,需要面对来自全世界各个地方的访问者,因此,国际化成为商业系统必不可少的一部分。
       Spring MVC的国际化是建立在Java国际化的基础之上的,其一样也是通过提供不同国家/语言环境的消息资源,然后通过 Resource Bundle加载指定 Locale对应的资源文件,再取得该资源文件中指定key对应的消息。这整个过程与Java程序的国际化完全相同,只是 Spring MVC框架对Java程序国际化进行了进一步的封装,从而简化了应用程序的国际化。
二、Spring MVC国际化的知识:
     1、messageSource接口:告诉系统国际资源文件的存储位置。         
               org.springframework.context.support.ResourceBundleMessageSource类
     2、LocaleResolver接口:确定语言区域
          (1)accept-langage:基于浏览器的语言区域选择  ---  默认方式,不需要配置
          (2)SessionLocaleResolver:基于会话的语言区域选择,需要配置(常用)
          (3)CookieLocaleResolver:基于Cookie的语言区域选择,需要配置
    
     3、LocaleChangeInterceptor拦截器:国际化的拦截器,当语言区域发生改变时,该拦截器将进行拦截,根据传递的参数来改变应用的语言环境。需要在SpringMVC的配置文件中进行注册
      4、message标签:是Spring MVC的标签,在视图页面中输出国际化的消息
         <%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
三、Spring MVC国际化步骤:
   (1)给系统加载国际化资源文件。
   (2)输出国际化。 Spring MVC输出国际化消息有两种方式:
         A、在视图页面上输出国际化消息,需要使用 Spring MVC的标签库。
         B、在 Controller的处理方法中输出国际化消息,需要使用 org.springframework.web.servlet.support Requestcontext的getMessage()方法来完成。
四、基于SessionLocaleResolver的国际化:
1、创建资源文件
         messages_zh_CN.properties
         messages_en_US.properties
      2、配置国际化的类和拦截器
 <!-- 基于SessionLocaleResolver的语言区域选择器 -->
       <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
       <!-- 注册MessageSource,明确资源文件的位置 -->
       <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
          <property name="basename" value="messages"></property>
       </bean>
 
       <!-- 配置拦截器 -->
       <mvc:interceptors>
       <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
          <property name="paramName" value="lang"></property>
       </bean>
      </mvc:interceptors>
      3、在页面中使用message标签输出国际化信息
     <spring:message code="language"/>:
          <a href="?lang=zh_CN">
            <spring:message code="language.cn"/>
          </a>  ------
          <a href="?lang=en_US">
            <spring:message code="language.en"/>
          </a>
          <br><br>
          <div align="center">
             <h2>
                <spring:message code="userlogin"/>
             </h2>
             <hr><br>
              <spring:message code="username"/>:
             <input type="text">
             <br><br>
              <spring:message code="password"/>
             <input type="password">
             <br><br>
             <input type="submit" value="<spring:message code="submit"/>">
             &nbsp;&nbsp;&nbsp;&nbsp;
             <input type="reset" value="<spring:message code="reset"/>">
          </div>
       

转载于:https://www.cnblogs.com/lone5wolf/p/10943869.html

Spring MVC国际化相关推荐

  1. Spring MVC国际化(i18n)和本地化(L10n)示例

    Spring MVC国际化(i18n)和本地化(L10n)示例 欢迎来到Spring Internationalization(i18n)教程.任何遍布全球的用户,国际化(i18n)或本地化(L10n ...

  2. spring mvc国际化_Spring MVC国际化(i18n)和本地化(L10n)示例

    spring mvc国际化 Welcome to the Spring Internationalization (i18n) tutorial. Any web application with u ...

  3. Spring MVC -- 国际化

    在全球化的今天,现在比过去更需要编写可以在不同语言国家和地区部署的应用程序.在这方面,需要了解两个术语: 国际化:常常缩写为i18n,因为其单词internationalization以i开始,以n结 ...

  4. Spring MVC基础知识整理➣国际化和异常处理

    概述 Spring框架为WEB项目提供了国际化以及异常处理机制.所谓的国际化也就是不同国籍,显示不同国籍的语言与符号.异常处理,也就是能够捕获WEB项目下的所有异常信息,并能处理记录这些异常信息机制. ...

  5. Spring MVC注解、标签库、国际化

    本篇文章主要介绍自己在学习Spring MVC常用注解.标签库.国际化遇到的一些问题,分享给大家,希望对你有所帮助. 问题一:指定扫描包的位置 应该将所有控制器类都放在基本包下,并且指定该扫描包,避免 ...

  6. Spring MVC的国际化

    Spring MVC 的国际化是建立在 Java 国际化的基础之上的,Spring MVC 框架的底层国际化与 Java 国际化是一致的,作为一个良好的 MVC 框架,Spring MVC 将 Jav ...

  7. Spring MVC异常统一处理(异常信息的国际化,日志记录)

    JAVA EE项目中,不管是对底层的数据操作,还是业务层的处理过程,还是控制层的处理,都不可避免的会遇到各种可预知的(业务异常主动抛出).不可预知的异常需要处理.一般dao层.service层的异常都 ...

  8. Spring MVC框架有哪些优点

    Spring MVC是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架.它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异. Spring ...

  9. spring mvc基本概念

    Spring MVC的基本感念 关于三层架构和 MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就 是浏览器服务器.在 Ja ...

最新文章

  1. 弹性板计算和板带划分计算_计算双面太阳能板背面太阳辐射的新方法
  2. Java 常用类库 之 Random 随机数类实例
  3. 关于对FLASH开发,starling、starling feathers、starling MVC框架的理解
  4. 以脚本方式直接执行修改密码的passwd命令
  5. 【大学课程】线性代数基础知识点
  6. 前端学习(2376):项目初始化
  7. @Aspect中@Pointcut 12种用法
  8. 单片机最小系统着实让人着迷
  9. HASH 、MD、SHA、MAC、HMAC、SM3
  10. win7网络不显示共享计算机,win7查找不到网络计算机怎么办_win7看不到网络计算机怎么解决-win7之家...
  11. web h5调用微信分享功能
  12. 现在的 Linux 内核和 Linux 2.6 的内核有多大区别?
  13. 第七届团队程序设计天梯赛 题目解析讲解
  14. 虚拟机增加一块新硬盘
  15. python编码使用ascii编码_Python中的编码问题:ASCII码 Unicoden编码 UTF-8编码
  16. [ol-cesium] ol-cesium学习 二维切换三维 npm启动
  17. 大数据相关总结(待续)
  18. 数据分析入门学习指南|零基础小白必看
  19. Java项目:基于SSM人事管理系统(计算机毕业设计)
  20. 解决SecureFX中文乱码的方法

热门文章

  1. Django 的模板语法之过滤器
  2. .Net 3.5新特性(1)Automatic Properties, Object Initializers, and Collection Initializers
  3. Vue - class与style绑定
  4. dede调用头条非头条
  5. 1.多线程-NSThread
  6. 需要熟悉的几个调试命令:objdump/pmap/ldd/stace
  7. Google开源OCR项目Tesseract安装版在Windows下的使用测试记录
  8. oracle安装报错emca,求助:oracle 安装问题
  9. leetcode算法题--飞地的数量
  10. java中的session对象,Java对象中Response与session对象的方法是什么?