一、关于国际化
国际化:,便是针对世界上不同地区、不同国家进行不同的显示
我们举一个例子:
同一个页面, 当中国人查看页面,页面显示的是 你好
而当美国人查看页面页面显示的时 WELCOME
从这个例子可以看出国际化极大地满足了不同地区,不同国家来访者的阅读需求
二、步骤
1.引入jar
jstl-1.2.jar
standard-1.1.2.jar
2.创建资源文件
即让“你好“和welcome对应,通过资源文件将你好和welcome配成一对
关于资源文件的命名,有这下面这些要求
## 命名规则
```c
资源文件名 简介
基名_en.properties 所有英文语言的资源
基名_en.US_properties 针对美国地区,英文语言的资源
基名_zh.properties 所有的中文语言的资源
基名_zh_CN.properties 针对中国大陆的中文语言资源
基名_zh_HK.properties 针对中国香港的中文语言资源
基名.properties 默认资源文件,如果请求相应语言的资源文件不存在,将使用此资源文件
基名我们可以起作
1) i18n
2) base
i18n: internationalization,单词太长,我们只取开头的i和结尾的n,中间18个字符用18做代替
我们创建三个文件,分别是
1)base_zh_CN.properties(中文资源文件)
2)base_en_US.properties (英文资源文件)
3)base.properties(前两个文件中没有找到信息会到此文件来找)
注意我们在文件中的中文会自动的被jdk的bin目录下的native2ascii.exe转换成ASCII码
base_zh_CN.properties文件:
resource.welcome=\u4F60\u597D
resource.exist=\u9000\u51FA
resource.welcome=你好
resource.exist=退出
base_zh_CN.properties文件:
resource.welcome=WELCOME
resource.exist=EXIST
3.配置springmvc.xml加载资源文件
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="base"></property>
</bean>
1.将ResourceBundleMessageSource在程序加载时加入springmvc,SpringMVC在启动时会自动查找一个id="messageSource"的bean,如果有则自动加载
2.如果配置了ResourceBundleMessageSource,则该类会在程序响应时介
4.测试
我们测试通过点击index.jsp的超链接,跳转到success,jsp页面
index.jsp:
testBase
<a href="testBase">jstl国际化</a>
Controller:
// 测试国际化
@RequestMapping(value = "testBase")
public String testBase() {
return "success";
}
success.jsp:
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<fmt:message key="resource.welcome"></fmt:message>
<fmt:message key="resource.exist"></fmt:message>
</body>
</html>
当浏览器设置为中文时我们查看页面
当浏览器设置为英文时我们查看页面