JSP 标准标签库 JSTL 2

本文介绍了Java中如何使用国际化标签库进行文本、日期及数字的格式化,并演示了资源文件的读取方法。

国际化标签库

理解国际化的主要操作

可以使用国际化进行文本、日期的格式化操作






               Locale 是进行国际化操作中最重要的一个内容,通过不同的Locale 可以指定不同的区域,以取得不同的资源文件的信息

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
	<%
		pageContext.setAttribute("date",new Date());
	%>
<h3>中文日期显示:
	<fmt:setLocale value="zh_CN"/>
	<fmt:formatDate value="${date}"/>
</h3>
<h3>英文日期显示:
	<fmt:setLocale value="en_US"/>
	<fmt:formatDate value="${date}"/>
</h3>
</body>
</html>

中文日期显示:2011-11-9

中文日期显示:Nov 9, 2011

此操作是解决乱码的

<%

        request.setCharacterEncoding("GBK");

%>

<fmt:requestEncoding value="GBK"/>  两个功能相同


                 在进行国际化实现中最重要的部分就是资源文件的读取,所有的资源文件的后缀肯定是*.properties 文件,下面定义一个普通的资源文件: Message.properties

                 文件应该保存在classpath 之中,所以直接在/WEB-INF/classes 中建立即可


name = nihao
info = \u6b22\u8fce{0}\u5149\u4e34
下面需要通过标签设置资源文件

现在确实可以设置名称,但是有名称不够,因为要读取的是里面的信息,因为要读取的是里面的信息,所以另外还需标签的支持

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<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="ABC"/>
		</fmt:message>
	</fmt:bundle>
		<h3>信息:${inforef}</h3>
</body>
</html>

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<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="gz"/>
		</fmt:message>
		<h3>信息:${inforef}</h3>
</body>
</html>
              此时,实际上也可以根据不同的资源进行划分,如果现在要实现
          <fmt:setLocale value="zh_CN"/> //中文的资源文件进行读取



<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<fmt:formatNumber value="333939.39394" maxIntegerDigits="7" 
maxFractionDigits="3" groupingUsed="true" var="num"/>
<h3>格式化数字: ${num}</h3>

<fmt:formatNumber value="333939.39394" pattern="##.###E0" var="num"/>
<h3>科学计数法: ${num}</h3>
</body>
</html>
在JST 之中除了可以将数字格式化之外,也可以进行反格式化的操作

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
    <fmt:parseNumber value="3,222,438.3803" var="num"/>
    <h3>反格式化的数字: ${num }</h3>
    
    <fmt:parseNumber value="3.233E4" pattern="##.###E0" var="num"/>
    <h3>反科学计数法: ${num }</h3>
    
    <fmt:parseNumber value="3.3%" pattern="00%" var="num"/>
    <h3>反百分比: ${num }</h3>
</body>
</html>




<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<% 
    pageContext.setAttribute("dateref",new Date());
%>
<fmt:formatDate value="${dateref}" type="both" dateStyle="medium"
    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="long"
    timeStyle="long" var="date"/>
<h3>long显示日期的时间: ${date}</h3>

<fmt:formatDate value="${dateref}" type="both" dateStyle="full"
    timeStyle="full" var="date"/>
<h3>full显示日期的时间: ${date}</h3>

<fmt:formatDate value="${dateref}" type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒"
var="date"/>
<h3>自定义格式显示日期的时间: ${date}</h3>
</body>
</html>


default显示日期的时间: 2011-11-10 2:21:54

short显示日期的时间: 11-11-10 上午2:21

medium显示日期的时间: 2011-11-10 2:21:54

long显示日期的时间: 2011年11月10日 上午02时21分54秒

full显示日期的时间: 2011年11月10日 星期四 上午02时21分54秒 CST

自定义格式显示日期的时间: 2011年11月10日 02时21分54秒169毫秒

  反日期格式化

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<body>
<fmt:parseDate value="2011年11月10日 星期四 上午02时21分54秒 CST" type="both" dateStyle="full" timeStyle="full" var="date"/>
<h3>字符串变为日期: ${date}</h3>

<fmt:parseDate value="2011年11月10日 02时21分54秒169毫秒" type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" var="date"/>
<h3>字符串变为日期: ${date}</h3>
</body>
</html>

字符串变为日期: Thu Nov 10 02:21:54 CST 2011

字符串变为日期: Thu Nov 10 02:21:54 CST 2011

 

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://www.csdn.net/jst/fmt"%>
<html>
<head> <title>欢迎光临</title>
</head>
<% 
	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>

FULL 显示日期的时间: 2011年11月9日 星期三 上午08时34分31秒 HST 

标签就是对类的封装


小结

通过国际化显示标签可以方便的完成资源文件的读取,以及对文字、日期、数字的格式化操作


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值