本篇我们继续讨论JSTL。I18N标签库一般用于编写国际化的应用程序。它分为两部分,国际化和日期、时间、数字的格式化。在jsp页面要使用格式化标签,必须要使用<%@taglib%>指令,指定格式化标签。代码如下:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
国际化标签
国际化标签包括<fmt:setLocale>,<fmt:bundle>,<fmt:message>,<fmt:param>和<fmt:requestEncoding>。
<fmt:setLocale>标签
它用于设置用户的本地语言环境,并将指定的locae保存到javax.servlet.jsp.jstl.fmt.locale配置变量中。其语法格式如下:
<fmt:setLocale value="locale" [variant="variant"] [scope="{page|request|session|application}"] />
value指定语言和地区代码,variant指定供应商或浏览器代码,如WIN表示windows。如果value是null或空,则使用默认locale。
<fmt:bundle>标签
它用于创建它的标签体使用的I18N本地上下文环境。其语法格式如下所示:
<fmt:bundle basename="basename" [prefix="prefix"]>
本体内容
</fmt:bundle>
basename表示资源包的基名,prefix指定在嵌套的<fmt:message>标签的消息键前面要添加的前缀。
<fmt:setBundle>标签
该标签用于创建一个I18N本地上下文环境,将它保存到javax.servlet.jsp.jstl.localizationContext配置变量中。其语法格式如下:
<fmt:setBundle basename="basename" [var="varName"] [scope="{scope|request|session|application}"] />
var表示被到导出的保存了I18N本地上下文的范围变量的名字。
<fmt:message>标签
该标签用于从资源包中查找一个指定键的值,用于显示本地化的消息。有三种格式的语法,语法格式如下:
1)语法格式1,没有标签体。
<fmt:message key="messagekey" [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"] />
2)语法格式2,有标签体,在标签体中指定消息参数
<fmt:message key="messagekey" [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"] >
<fmt:param> subtags
</fmt:message>
3)有标签体,在标签体中指定键和可选的消息参数。
<fmt:message [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"] >
key optional<fmt:param> subtags
</fmt:message>
key表示要查找的消息的键。bundle表示使用的资源包。如果key为null,将产生?????形式的错误信息。如果没有找到资源包,将产生???<key>???形式的错误。
<fmt:param>标签
该标签提供一个参数,用于在<fmt:message>中做参数置换。它有两个语法格式。如下:
1)语法格式1,通过value属性指定参数值。
<fmt:param value="messagevalue" />
2)语法格式2,通过标签体指定参数值
<fmt:param>
内容
</fmt:param>
<fmt:requestEncoding>
该标签体用于设置请求的字符编码,语法格式如下:
<fmt:requestEncoding [value="charsetName"] />
格式化标签
<fmt:formatNumber>标签
该标签会根据区域或定制的方式将数字格式化为数字、货币或百分比。语法分为两种,没有本体内容,使用value属性来指定要格式化的数字,有本体内容,使用本体内容来指定要格式化的数字。语法格式如下:
<fmt:formatNumber value="number" [type={number|currency|percent}]
[pattern="pattern"]
[currencyCode="currencyCode"]
[groupingUsed="{true|false}"]
[maxInterDigits="maxIntegerDigits"]
[minIntegerDigits="minIntegerDigits"]
[maxFractionDigits="maxFractionDigits"]
[minFractionDigits="minFractionDigits"]
[var="varName"]
[scope="page|request|session|application"] />
<fmt:parseNumber>标签
该标签用来将字符串类型的数字、货币或百分比转换成数字类型。和<fmt:formatNumber>标签的作用证号相反。语法分为两种,没有本体内容,使用value属性来制定要转换成数字的字符串;无本体内容,使用本体内容来指定转换成数字的字符串。其语法格式如下:
<fmt:parseNumber value="number" [type={number|currency|percent}]
[pattern="pattern"]
[parseLocale="parseLocale"]
[groupingUsed="{true|false}"]
[integerOnly="{false|true}"]
[var="varName"]
[scope="page|request|session|application"] />
<fmt:formatDate>标签
该标签会根据区域或定制的方式将日期或时间格式化。其语法格式如下:
<fmt:formatDate value="number" [type={time|date|both}]
[pattern="pattern"]
[dateStyle="{default|short|medium|long|full}"]
[timeStyle="{default|short|medium|long|full}"]
[timeZone="timeZone"]
[var="varName"]
[scope="page|request|session|application"] />
<fmt:parseDate>标签
该标签用来将字符串类型的时间或日期转换为日期时间类型。与<fmt:formatDate>标签作用正好相反。也分为有本体内容或无本体内容两种。其语法格式如下:
<fmt:parseDate value="number" [type={time|date|both}]
[pattern="pattern"]
[dateStyle="{default|short|medium|long|full}"]
[timeStyle="{default|short|medium|long|full}"]
[timeZone="timeZone"]
[var="varName"]
[scope="page|request|session|application"] />
<fmt:setTimeZone>标签
该标签用来设定默认时区或将时区存储到属性范围中。其语法格式如下:
<fmt:setTimeZone value="timeZone" [var="varName" [scope="{page|request|session|application}"]]/>
<fmt:timeZone>标签
该标签用来暂时设定时区。其语法格式如下。
<fmt:timeZone value="timeZone">
本体内容
</fmt:timeZone>
转载请注明出处:http://blog.csdn.net/iAm333