Servlet&JSP的那些事儿(十九)

本篇我们继续讨论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

你可能感兴趣的:(Servlet&JSP的那些事儿(十九))