不过,我还是喜欢自己总结一下。 I18N格式标签库:I18N-capable formation tags library.它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。引入该标签库的方法为:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
I18N格式标签库提供了11个标签,这些标签从功能上可以划分为3类如下:
1)数字日期格式化。formatNumber标签、formatData标签、parseNumber标签、parseDate标签、timeZone标签、setTimeZone标签。
2)读取消息资源。bundle标签、message标签、setBundle标签。
3)国际化。setlocale标签、requestEncoding标签。
1.<frm:formatNumber/>标签
该标签依据特定的区域将数字改变为不同的格式来显示。
【语法】:
<frm:formatNumber value=”被格式化的数据”[type=”number|currency|percent”]
[pattern=”pattern”]
[currencyCode=”code”]
[currencySymbol=”symbol”]
[groupingUsed=”true|false”]
[maxIntergerDigits=”maxDigits”]
[minIntergerDigits=”minDigits”]
[maxFractionDigits=”maxDigits”]
[minFractionDigits=”minDigits”]
[var=”name”]
[scope=page|request|session|application]
/>
其中,Type属性的类型见下表:
举个例子:
1 <%@ page language="java" pageEncoding="gbk"%> 2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 4 <html> 5 <head> 6 <title>I18N标签库</title> 7 </head> 8 <body> 9 <h4 align="center"> 10 <c:out value="<frm:number>标签的使用"></c:out> 11 </h4> 12 <hr> 13 <table border=1 cellpadding="0" cellspacing="0" align="center"> 14 <tr align="center"> 15 <td width="100"> 16 类型 17 </td> 18 <td width="100"> 19 使用数据 20 </td> 21 <td width="100"> 22 结果 23 </td> 24 <td width="300"> 25 说明 26 </td> 27 </tr> 28 <tr> 29 <td> 30 数字格式化 31 </td> 32 <td> 33 108.75 34 </td> 35 <td> 36 <fmt:formatNumber type="number" pattern="###.#">108.75</fmt:formatNumber> 37 </td> 38 <td> 39 使用pattern可以定义显示的样式。本例设定为###.#小数部分将使用四舍五入法。 40 </td> 41 </tr> 42 <tr> 43 <td> 44 数字格式化 45 </td> 46 <td> 47 9557 48 </td> 49 <td> 50 <fmt:formatNumber type="number" pattern="#.####E0">9557</fmt:formatNumber> 51 </td> 52 <td> 53 使用科学计数法。 54 </td> 55 </tr> 56 <tr> 57 <td> 58 数字格式化 59 </td> 60 <td> 61 9557 62 </td> 63 <td> 64 <fmt:formatNumber type="number">9557</fmt:formatNumber> 65 </td> 66 </td> 67 <td> 68 使用默认分组。 69 </td> 70 </tr> 71 <tr> 72 <td> 73 数字格式化 74 </td> 75 <td> 76 9557 77 </td> 78 <td> 79 <fmt:formatNumber type="number" groupingUsed="false">9557</fmt:formatNumber> 80 </td> 81 <td> 82 不使用分组。 83 </td> 84 </tr> 85 <tr> 86 <td> 87 数字格式化 88 </td> 89 <td> 90 9557 91 </td> 92 <td> 93 <fmt:formatNumber type="number" maxIntegerDigits="3">9557</fmt:formatNumber> 94 </td> 95 <td> 96 使用位数限定,根据指定的位数显示,其他数字忽略。例如:9不被显示。 97 </td> 98 </tr> 99 <tr> 100 <td> 101 百分比格式化 102 </td> 103 <td> 104 0.98 105 </td> 106 <td> 107 <fmt:formatNumber type="percent">0.98</fmt:formatNumber> 108 </td> 109 <td> 110 用百分比形式显示一个数据。 111 </td> 112 </tr> 113 <tr> 114 <td> 115 货币格式化 116 </td> 117 <td> 118 188.88 119 </td> 120 <td> 121 <fmt:formatNumber type="currency">188.8</fmt:formatNumber> 122 </td> 123 <td> 124 将一个数据转化为货币形式输出。 125 </td> 126 </tr> 127 <tr> 128 <td> 129 存储数据 130 </td> 131 <td> 132 188.88 133 </td> 134 <td> 135 <fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber> 136 <c:out value="${money}"></c:out> 137 </td> 138 <td> 139 存储的money的值为${money} 140 </td> 141 </tr> 142 </table> 143 </body> 144 </html>
显示结果如下:
2.<frm:parseNumber>标签
将格式化后的数字、货币、百分比都转化为数字类型。
【语法】:
<fmt:parseNumber value="number" [type=”number|currency|percent”]
[pattern=”pattern”]
[parseLocale=”locale”]
[intergerOnly=”true|false”]
[scope=”page|request|session|application”]
/>
举个例子:
显示结果:
3.<fmt:formatDate>标签
该标签主要用来格式化日期和时间。
【语法】:
<fmt: formatDate value=”date” [type=”time|date|both”]
[pattern=”pattern”]
[dateStyle=”default|short|medium|long|full”]
[timeStyle=”default|short|medium|long|full”]
[timeZone=”timeZone”]
[var=”name”]
[scope=”page|request|session|application”]
/>
其中 type 属性类型有:
举个例子:
显示结果:
4.<fmt:parseDate>标签
<fmt:parseDate>标签主要将字符串类型的时间或日期转化为时间或日期对象。
【语法】:
<fmt:parseDate value=”date” [type=”time|date|both”]
[pattern=”pattern”]
[parseLocale=”locale”]
[dateStyle=”default|short|medium|long|full”]
[timeStyle=”default|short|medium|long|full”]
[timeZone=”timezone”]
[var=”name”]
[scope=”page|request|session|application”]
/>
举个例子:
显示结果:
5. <fmt:setTimeZone>标签
该标签用于设定默认时区,或者将时区存储在指定的JSP范围内。
【语法】
<fmt:setTimeZone value="value" [var="name"] [scope="page|request|session|application"]/>
举个例子:
<fmt:setTimeZone value="EST" scope="session"> 中国使用的时区为CST。有关TimeZone的说明在JDK帮助文档的 java.util.TimeZone 类。
6. <fmt:timeZone>标签
该标签主要用于设置标签体内使用的时区。
【语法】
<fmt:timeZone value="timeZone">
……
</fmt:timeZone>
该标签只会应用到标签体内使用的时区,为标签外部不产生影响。