一起学SpringMVC之国际化
随着网络的发展,在Web开发中,系统的国际化需求已经变得非常的普遍。本文主要讲解SpringMVC框架对多语言的支持,仅供学习分享使用,如有不足之处,还请指正。
什么是国际化?
国际化(internationalization)又称为 i18n(读法为i 18 n,据说是因为internationalization(国际化)这个单词从i到n之间有18个英文字母,i18n的名字由此而来),即能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。
SpringMVC支持国际化步骤
1. 创建国际化资源文件
如下所示,国际化资源文件*.properties格式的文件,文件命名必须符合【base_语言_地区.properties】的命名规范,缺省为【base.properties】即,如果没有对应的语言的资源文件,则从默认文件中查找。
//默认文件
/ThirdSpringMvc/src/i18n.properties
//英文-美国
/ThirdSpringMvc/src/i18n_en_US.properties
//中文-中国
/ThirdSpringMvc/src/i18n_zh_CN.properties
2. 国际化资源文件的内容
国际化资源文件内容是以键值对【key=value】的格式存储的,且如果是中文,则显示对应的Ascii码如下所示:
hi=\u4F60\u597D
me=\u6211
love=\u7231
study=\u5B66\u4E60
mvc=SpringMVC
3. 在SpringMVC默认配置文件【dispatcher-servlet.xml】文件中增加国际化支持
如下所示:基名为i18n是默认通用的命名方式。
备注:bean的id必须是messageSource,否则对应不上
<!-- 加载国际化资源文件 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<!--<property name="basename" value="i18n"></property>-->
<property name="basenames">
<list>
<value>i18n</value>
</list>
</property>
</bean>
4. 在JSP中文件中增加jstl支持
如下所示:通过<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>引入标签支持
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<fmt:message key="hi"></fmt:message>
<fmt:message key="me"></fmt:message>
<fmt:message key="love"></fmt:message>
<fmt:message key="study"></fmt:message>
<fmt:message key="mvc"></fmt:message>
</body>
</html>
5. 测试,打开设置语言选项
在IE浏览器中设置如下:设置-->Internet选项-->语言-->打开语言选项,可以通过上移下移设置当前语言,如果没有,则可以添加语言。如下所示:当前为英文-美国(en-US)
则浏览器显示内容如下:
如设置成中文-中国(zh-CN),则显示如下:
以上就是设置SpringMVC支持多语言的操作步骤。
备注
葡萄美酒夜光杯,欲饮琵琶马上催。
醉卧沙场君莫笑,古来征战几人回?
一起学SpringMVC之国际化的更多相关文章
- 【转】跟着开涛学SpringMVC
跟着开涛学SpringMVC 第一章源代码下载 博客分类: 跟开涛学SpringMVC 跟开涛学SpringMVC 源代码请到附件中下载. 其他下载: 跟着开涛学SpringMVC 第一章源代码下载 ...
- 跟我学SpringMVC目录汇总贴、PDF下载、源码下载
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列
Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列
- 学SpringMVC收藏
一个较完整的SpringMVC工程的配置 2014-01-22 17:17:25 标签:java spring springMVC 配置 springSecurity web.xml 原创作品,允许 ...
- springMVC项目国际化(i18n)实现方法
SpringMVC项目国际化(i18n)实现方法 按照作息规律,每周五晚必须是分享知识的时间\(^o^)/~,这周讲点儿啥呢,项目需要逼格,咱们国际化吧(* ̄rǒ ̄)~,项目中碰到这类需求的童鞋可能并 ...
- SpringMVC实现国际化过程中所遇问题
前言:在利用SpringMVC实现国际化的过程中,看似简单,实则还是遇到了一些小问题,现在笔者对所遇问题总结如下. 注:笔者所用的编辑器为Intellij IEDA 14.1.7版本 1.国际化资源文 ...
- SpringMVC的国际化
关于SpringMVC的国际化,http://www.cnblogs.com/liukemng/p/3750117.html这篇文章已经讲的很好了.它讲了有如下几种国际化方式 1:基于Http的hea ...
- springMVC之国际化
1.工程结构 2.jar包 3.配置文件spring-config.xml,springMVC配置文件 <?xml version="1.0" encoding=" ...
- Java SpringMVC实现国际化整合案例分析(i18n)
所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等.下面我将以具体的实例来举例说明: (1)新建动态Javaweb项目,并导入几个SpringMVC必需的 ...
随机推荐
- 谁说微服务是Spring Cloud的独角戏?Service Mesh了解一下?
Service Mesh 的概念自 2017 年初提出之后,受到了业界的广泛关注,作为微服务的下一代发展架构在社区迅速发酵,并且孵化出了诸如 Istio 等广受业界关注的面向于云原生 (Cloud N ...
- 首次自动化测试,使用selenium+scapy
痛苦而艰难 才写出这一点点,这是个登陆测试 main # -*- coding: utf-8 -*- from selenium import webdriver import login_tst i ...
- k8s 开船记-修船:改 readinessProbe ,去 DaemonSet ,上 Autoscaler
(图片来自网络) 改 readinessProbe 对于昨天 k8s 尼克号发生的触礁事故,我们分析下来主要是2个原因,一是当时4个节点不够用造成部分容器负载过高而宕机,二是 readinessPro ...
- Python爬虫--喜马拉雅三国音频爬取
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Botreechan 1.进入地址我们可以发现,页面有着非常整齐的目 ...
- base64编码的字符串与图片相互转换
#region 图片转为base64编码的字符串---ImgToBase64String /// <summary> /// 图片转为base64编码的字符串 /// </summa ...
- elasticsearch-6.2.4 + kibana-6.2.4-windows-x86_64安装配置
1.es和kibana的版本都是6.2.4 elasticsearch-6.2.4 + kibana-6.2.4-windows-x86_64 2.先安装es,下载下来解压, config目录下修改 ...
- JS基础-事件队列
为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. JavaSc ...
- Java垃圾回收机制你还不明白?一线大厂面试必问的!
什么是自动垃圾回收? 自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制. 所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象:而未使用中的对象(未 ...
- final关键字、finally代码块和finalize()方法有什么区别?
1. final是关键字,final可以修饰类.方法.属性. 如果一个类被final修饰,那么这个类就是最终类,不能派生出新的子类,不能作为父类被继承,该类中的所有方法都不能被重写,但是final类中 ...
- Java8-Lamda和Stream原理引入
一说明 这边文章主要是带大家为什么会有lamda表达式的出现,流式思想的产生.具体的Lamda表达式操作,Stream流会在后面的文章更新,有兴趣的朋友也可以加一下我微信公众号,分享学习干货. 二ja ...