1、<fmt:setLocale>标签:
Locale是进行国际化操作中最重要的一个内容,通过不同个locale可以指定不同的区域,
以取得不同的资源文件的信息;
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<%
pageContext.setAttribute("date",new Date());
%>
<h3>中文日期显示:</h3>
<fmt:setLocale value="zh_CN"/>
<fmt:formatDate value="${date}"/>
</h3>
<h3>英文日期显示:</h3>
<fmt:setLocale value="en_US"/>
<fmt:formatDate value="${date}"/>
</h3>
</body>
</html>
2、<fmt:requestEncoding>标签的主要作用是用于设置所有的请求编码,功能与setCharacterEncoding(
)yiyang ,
语法如下:
·<fmt:requestEncoding [value="字符集"]/>
<fmt:requestEncoding value="gbk"/>
3、<fmt:bundle>,读取资源文件:
在进行国际化程序实现中最重要的部分就是资源文件的读取,所有的资源文件的后缀
肯定是*.properties文件,下面先定义一个普通的资源文件:Message.properties;
文件应该保持在classpath之中,所以直接在/WEB-INF/classes中建立即可;
首先在C:\Program Files\Java\jdk1.6.0_18\bin中找到native2ascii.exe
在里面输入---进行转码;
欢迎{0}光临!----回车得到如下:
\u6b22\u8fce{0}\u7684\u5149\u4e34\uff01
在Message.properties中:
name=lid
info=\u6b22\u8fce{0}\u7684\u5149\u4e34\uff01
下面就需要通过标签设置此资源文件;
通过<fmt:bundle>标签指定好了资源文件名称之后,就可以使用<fmt:message>标签按照key读取
value,
语法如下:
<fmt:message key="资源文件的指定key" [bundle="资源文件名称"] [var="存储内容属性名
称"]
[page|resquest|session|application]>
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<fmt:bundle basename="Message">
<fmt:message key="name" var="nameref"/>
</fmt:bundle>
<h3>姓名:${nameref}</h3>
<fmt:bundle basename="Message">
<fmt:message key="info" var="inforef">
<fmt:param value="lid"/>
</fmt:message>
</fmt:bundle>
<h3>信息:${inforef}</h3>
</body>
</html>
4、<fmt:setBundle>:设置一个默认的读取资源名称;
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<fmt:setBundle basename="Message" var="msg"/>
<fmt:message key="name" var="nameref" bundle="${msg}"/>
<h3>姓名:${nameref}</h3>
<fmt:message key="info" var="inforef" bundle="${msg}">
<fmt:param value="lid"/>
</fmt:message>
<h3>信息:${inforef}</h3>
</body>
</html>
此时,实际上也可以根据不同的资源文件进行划分,如果现在要实现国际化的操作,
肯定要有很多资源文件,
<fmt:setLocale value="zh_CN"/>
<fmt:setBundle basename="Message" var="msg"/>
5、数组格式化:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<fmt:formatNumber value="33333.33444422" maxIntegerDigits="7"
maxFractionDigits="3" groupingUsed="true" var="num"/>
<h3>格式化数字:${num}</h3>
</body>
</html>
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<fmt:formatNumber value="33333.33444422" maxIntegerDigits="7"
maxFractionDigits="3" groupingUsed="true" var="num"/>
<h3>格式化数字:${num}</h3>
<fmt:formatNumber value="33333.33444422" pattern="##.###E0" var="num1"/>
<h3>科学计数法:${num}</h3>
</body>
</html>
反格式化:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<fmt:formatNumber value="33333.33444422" maxIntegerDigits="7"
maxFractionDigits="3" groupingUsed="true" var="num"/>
<h3>格式化数字:${num}</h3>
<fmt:formatNumber value="33333.33444422" pattern="##.###E0"
var="num1"/>
<h3>科学计数法:${num}</h3>
<fmt:parseNumber value="33,333.33444422" var="num2"/>
<h3>反格式化计数法:${num2}</h3>
<fmt:parseNumber value="3.98E6" pattern="##.###E0" var="num3"/>
<h3>反科学计数法:${num3}</h3>
</body>
</html>
6、日期格式化:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<%
pageContext.setAttribute("dateref" ,new Date());
%>
<fmt:formatDate value="${dateref}" type="both" dateStyle="default"
timeStyle="default" var="date"/>
<h3>default显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="short"
timeStyle="short" var="date"/>
<h3>short显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="medium"
timeStyle="medium" var="date"/>
<h3>medium显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="full"
timeStyle="full" var="date"/>
<h3>full显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="long"
timeStyle="long" var="date"/>
<h3>short显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" pattern="yyyy年MM月dd日 HH时
mm分ss秒SSS毫秒"
var="date"/>
<h3>自定义格式显示日期时间:${date}</h3>
</body>
</html>
7、日期的反格式化:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<%
pageContext.setAttribute("dateref" ,new Date());
%>
<fmt:formatDate value="${dateref}" type="both" dateStyle="default"
timeStyle="default" var="date"/>
<h3>default显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="short"
timeStyle="short" var="date"/>
<h3>short显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="medium"
timeStyle="medium" var="date"/>
<h3>medium显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="full"
timeStyle="full" var="date"/>
<h3>full显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" dateStyle="long"
timeStyle="long" var="date"/>
<h3>short显示日期时间:${date}</h3>
<fmt:formatDate value="${dateref}" type="both" pattern="yyyy年MM月dd日 HH时
mm分ss秒SSS毫秒"
var="date"/>
<h3>自定义格式显示日期时间:${date}</h3>
<fmt:parseDate value="2008年7月5日 星期日 上午11时47分45秒 CST"
type="both" dateStyle="full" timeStyle="full" var="date"/>
<h3>字符串变为日期:${date}</h3>
<fmt:parseDate value="2008年7月5日 星期日 上午11时47分45秒062毫秒"
type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒"
var="date"/>
<h3>字符串变为日期:${date}</h3>
</body>
</html>
8、设置时区:<fmt:setTimeZone>
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<%
pageContext.setAttribute("dateref" ,new Date());
%>
<fmt:timeZone value="HST">
<fmt:formatDate value="${dateref}" type="both" dateStyle="full"
timeStyle="full" var="date"/>
</fmt:timeZone>
<h3>FULL显示日期时间:${date}</h3>
</body>
</html>