`

jstl fmt标签详解

    博客分类:
  • jsp
阅读更多

看到 I18N 就应该想到知识“国际化”, I18N formatting 标签库就是用于在 JSP 页面中做国际化的动作。在该标签库中的标签一共有 12 个,被分为了两类,分别是:

q         国际化核心标签: <fmt:setLocale> <fmt:bundle> <fmt:setBundle> <fmt:message> <fmt:param> <fmt:requestEncoding>

q         格式化标签: <fmt:timeZone> <fmt:setTimeZone> <fmt:formatNumber> <fmt:parseNumber> <fmt:formatDate> <fmt:parseDate>

下面只选择其中常见的一些标签和属性进行介绍。

9.5.1  用于设置本地化环境的 <fmt:setLocale> 标签

<fmt:setLocale> 标签用于设置 Locale 环境。它的属性和描述如表 9.17 所示:

9.17   <fmt:setLocale> 标签属性和说明

属性

描述

value

Locale 环境的指定,可以是 java.util.Locale String 类型的实例

scope

Locale 环境变量的作用范围(可选)

下面看一个示例:

<fmt:setLocale value="zh_TW"/>

表示设置本地环境为繁体中文。

9.5.2  用于资源文件绑定的 <fmt:bundle> <fmt:setBundle> 标签

这两组标签用于资源配置文件的绑定,唯一不同的是 <fmt:bundle> 标签将资源配置文件绑定于它标签体中的显示, <fmt:setBundle> 标签则允许将资源配置文件保存为一个变量,在之后工作可以根据该变量来进行。

根据 Locale 环境的不同将查找不同后缀的资源配置文件,这点在国际化的任何技术上都是一致的,通常来说,这两种标签单独使用是没有意义的,它们都会与 I18N formatting 标签库中的其他标签配合使用。它们的属性和描述如表 9.18 所示:

9.18   <fmt:bundle> <fmt:setBundle> 标签属性和说明

属性

描述

basename

资源配置文件的指定,只需要指定文件名而无须扩展名,二组标签共有的属性

var

<fmt:setBundle> 独有的属性,用于保存资源配置文件为一个变量

scope

变量的作用范围

下面看一个示例

<fmt:setLocale value="zh_CN"/>

<fmt:setBundle basename="applicationMessage" var="applicationBundle"/>

该示例将会查找一个名为 applicationMessage_zh_CN.properties 的资源配置文件,来作为显示的 Resource 绑定。

9.5.3  用于显示资源配置文件信息的 <fmt:message> 标签

用于信息显示的标签,将显示资源配置文件中定义的信息。它的属性和描述如表 9.19 所示:

9.19   <fmt:message> 标签属性和说明

属性

描述

key

资源配置文件的“键”指定

bundle

若使用 <fmt:setBundle> 保存了资源配置文件,该属性就可以从保存的资源配置文件中进行查找

var

将显示信息保存为一个变量

scope

变量的作用范围

下面看一个示例:

<fmt:setBundle basename="applicationMessage" var="applicationBundle"/>

<fmt:bundle basename="applicationAllMessage">

         <fmt:message key="userName" />

         <p>

         <fmt:message key="passWord" bundle="${applicationBundle}" />

</fmt:bundle>

该示例使用了两种资源配置文件的绑定的做法,“ applicationMessage ”资源配置文件利用 <fmt:setBundle> 标签被赋于了变量“ applicationBundle ”,而作为 <fmt:bundle> 标签定义的“ applicationAllMessage ”资源配置文件作用于其标签体内的显示。

q         第一个 <fmt:message> 标签将使用“ applicationAllMessage ”资源配置文件中“键”为“ userName ”的信息显示。

q         第二个 <fmt:message> 标签虽然被定义在 <fmt:bundle> 标签体内,但是它使用了 bundle 属性,因此将指定之前由 <fmt:setBundle> 标签保存的“ applicationMessage ”资源配置文件,该“键”为“ passWord ”的信息显示。

9.5.4  用于参数传递的 <fmt:param> 标签

<fmt:param> 标签应该位于 <fmt:message> 标签内,将为该消息标签提供参数值。它只有一个属性 value

<fmt:param> 标签有两种使用版本,一种是直接将参数值写在 value 属性中,另一种是将参数值写在标签体内。

9.5.6  用于为请求设置字符编码的 <fmt:requestEncoding> 标签

<fmt:requestEncoding> 标签用于为请求设置字符编码。它只有一个属性 value ,在该属性中可以定义字符编码。

9.5.7  用于设定时区的 <fmt:timeZone> <fmt:setTimeZone> 标签

这两组标签都用于设定一个时区。唯一不同的是 <fmt:timeZone> 标签将使得在其标签体内的工作可以使用该时区设置, <fmt:setBundle> 标签则允许将时区设置保存为一个变量,在之后的工作可以根据该变量来进行。它们的属性和描述如表 9.20 所示:

9.20   <fmt:timeZone> <fmt:setTimeZone> 标签 属性和说明

属性

描述

value

时区的设置

var

<fmt:setTimeZone> 独有的属性,用于保存时区为一个变量

scope

变量的作用范围

9.5.8  用于格式化数字的 <fmt:formatNumber> 标签

<fmt: formatNumber > 签用于格式化数字。它的属性和描述如表 9.21 所示:

9.21   <fmt:formatNumber> 标签属性和说明

属性

描述

value

格式化的数字,该数值可以是 String 类型或 java.lang.Number 类型的实例

type

格式化的类型

pattern

格式化模式

var

结果保存变量

scope

变量的作用范围

maxIntegerDigits

指定格式化结果的最大值

minIntegerDigits

指定格式化结果的最小值

maxFractionDigits

指定格式化结果的最大值,带小数

minFractionDigits

指定格式化结果的最小值,带小数

<fmt:formatNumber> 标签实际是对应 java.util.NumberFormat 类, type 属性的可能值包括 currency (货币)、 number (数字)和 percent (百分比)。

下面看一个示例。

<fmt:formatNumber value="1000.888" type="currency" var="money"/>

该结果将被保存在“ money ”变量中,将根据 Locale 环境显示当地的货币格式。
  1. <fmt:formatNumber value="12" type="currency" pattern="$.00"/> //-- $12.00    
  2.   
  3. <fmt:formatNumber value="12" type="currency" pattern="$.0#"/> //-- $12.0    
  4.   
  5. <fmt:formatNumber value="1234567890" type="currency"/> //-- $1,234,567,890.00(那个货币的符号和当前web服务器的 local 设定有关)    
  6.   
  7. <fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/>// -- 123,456.79    
  8.   
  9. <fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> //-- 123,456.7    
  10.   
  11. <fmt:formatNumber value="123456.7" pattern="#,#00.00#"/>// -- 123,456.70    
  12.   
  13. <fmt:formatNumber value="12" type="percent" /> //-- 1,200% (type 可以是currency、 number、 和percent)。

9.5.9  用于解析数字的 <fmt:parseNumber> 标签

<fmt:parseNumber> 标签用于解析一个数字,并将结果作为 java.lang.Number 类的实例返回。 <fmt:parseNumber> 标签看起来和 <fmt:formatNumber> 标签的作用正好相反。它的属性和描述如表 9.22 所示:

9.22   <fmt:parseNumber> 标签属性和说明

属性

描述

value

将被解析的字符串

type

解析格式化的类型

pattern

解析格式化模式

var

结果保存变量,类型为 java.lang.Number

scope

变量的作用范围

parseLocale

以本地化的形式来解析字符串,该属性的内容应为 String java.util.Locale 类型的实例

下面看一个示例。

<fmt:parseNumber value="15%" type="percent" var="num"/>

解析之后的结果为“ 0.15 ”。

9.5.10  用于格式化日期的 <fmt:formatDate> 标签

<fmt:formatDate> 标签用于格式化日期。它的属性和描述如表 9.23 所示:

9.23   <fmt:formatDate> 标签属性和说明

属性

描述

value

格式化的日期,该属性的内容应该是 java.util.Date 类型的实例

type

格式化的类型

pattern

格式化模式

var

结果保存变量

scope

变量的作用范围

timeZone

指定格式化日期的时区

<fmt:formatDate> 标签与 <fmt:timeZone> <fmt:setTimeZone> 两组标签的关系密切。若没有指定 timeZone属性, 也可以通过 <fmt:timeZone> <fmt:setTimeZone> 两组标签设定的时区来格式化最后的结果。

9.5.11  用于解析日期的 <fmt:parseDate> 标签

<fmt:parseDate> 标签用于解析一个日期,并将结果作为 java.lang.Date 类型的实例返回。 <fmt:parseDate> 标签看起来和 <fmt:formatDate> 标签的作用正好相反。它的属性和描述如表 9.24 所示:

9.24   <fmt:parseDate> 标签属性和说明

属性

描述

value

将被解析的字符串

type

解析格式化的类型

pattern

解析格式化模式

var

结果保存变量,类型为 java.lang.Date

scope

变量的作用范围

parseLocale

以本地化的形式来解析字符串,该属性的内容为 String java.util.Locale 类型的实例

timeZone

指定解析格式化日期的时区

<fmt:parseNumber> <fmt:parseDate> 两组标签都实现解析字符串为一个具体对象实例的工作,因此,这两组解析标签对 var 属性的字符串参数要求非常严格。就 JSP 页面的表示层前段来说,处理这种解析本不属于份内之事,因此 <fmt:parseNumber> <fmt:parseDate> 两组标签应该尽量少用,替代工作的地方应该在服务器端表示层的后段,比如在 Servlet 中。

分享到:
评论

相关推荐

    jstl fmt标签详解

    ### JSTL `fmt` 标签库详解 #### 一、引言 在Web开发过程中,为了满足不同地区用户的语言需求,实现网站或应用的国际化(I18N)至关重要。JavaServer Pages Standard Tag Library (JSTL) 提供了一系列便捷的方法来...

    jstl标签详解jstl标签详解jstl标签详解

    在实际开发中,`JSTL_标签库详解(一个不漏).doc`和`JSTL核心标签库.doc`这样的文档是极有价值的参考资料,它们详细解释了每个标签的用法、属性以及示例,可以帮助开发者快速理解和掌握JSTL的使用。确保阅读并理解...

    fmt标签详解

    `fmt`标签是JavaServer Pages (JSP)中Jakarta Tag Library (JSTL)的一部分,主要用于文本格式化,特别是数字和日期的处理。在本文中,我们将深入探讨`fmt`标签的使用方法、属性以及相关示例。 首先,`fmt`标签提供...

    JSTL 标签大全详解

    ### JSTL 标签大全详解 #### 一、JSTL标签介绍 ##### 1、什么是JSTL? JSTL(JavaServer Pages Standard Tag Library,JavaServer 页面标准标签库)是由 Apache 开发的一组标准标签库,用于简化 JSP 页面的开发。...

    JSTL标签详解入门首选

    在本教程中,我们将深入探讨JSTL的核心组件——C、FMT和FN标签库,并通过实例解析它们的常见用法。 首先,我们来看**C标签库**,这是JSTL中用于控制流程和迭代的主要标签库。C标签库提供了类似于Java语言中的`for`...

    JSTL fmt_formatNumber 数字、货币格式化

    Java Standard Tag Library (JSTL) 中的 `&lt;fmt:formatNumber&gt;` 标签提供了一种简单而强大的方式来完成这些任务。 #### 二、环境配置 在使用 `&lt;fmt:formatNumber&gt;` 之前,需要确保项目中已经包含了 JSTL 的相关库...

    jstl的使用有关JSTL的用法详解

    JSTL主要包含五个核心标签库:Core、 fmt、sql、xml和function。在这篇文章中,我们将深入探讨JSTL的使用方法和相关示例。 1. **Core库**:这是JSTL最基础的部分,包含处理流程控制、输出、URL重写等功能的标签。...

    jstl标签详解.doc

    JSTL,全称为JSP Standard Tag Library,是JSP的一种标准标签库,由Apache Jakarta团队维护。这个库旨在提供一套标准的、易用的标签,以替代在JSP页面中编写复杂的Java脚本,从而提高代码的可读性和可维护性。JSTL...

    jstl标签详解(jsp开发必看)

    JSTL,全称为JavaServer Pages Standard Tag Library,是Java EE平台中用于简化JSP页面开发的一组标准标签库。它极大地提高了JSP开发的效率,使得开发者可以使用预定义的标签来处理常见的任务,而不需要编写大量的...

    JSTL标签 详细易懂

    **JSTL fmt标签库详解:** - `&lt;fmt:formatDate&gt;`:格式化日期和时间。 - `&lt;fmt:formatNumber&gt;`:格式化数字,支持货币、百分比等格式。 - `&lt;fmt:message&gt;`:获取本地化的消息。 - `&lt;fmt:bundle&gt;`:加载和管理本地化...

    JSTL标签配置流程

    【JSTL标签配置流程详解】 JSTL(JavaServer Pages Standard Tag Library)是SUN公司推出的一种用于JSP开发的组件,旨在替代传统的JSP scriptlet代码,提高页面的可读性和维护性。JSTL提供了一系列标签,使得开发者...

    jstl两个核心包和jstl标签库EL表达式详解

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它简化了在JSP页面中的编程,...在学习过程中,参考“JSTL标签库.doc”和“EL表达式详解.doc”文档将有助于深入理解这两个主题。

    jstl c标签jar包

    这个库不仅提供了C标签库,还包括了其他一些标准的JSP标签,如fmt(格式化标签)、fn(函数标签)等。 **C标签库常用标签详解** 1. `&lt;c:forEach&gt;`:用于迭代一个集合或数组。例如,可以用来遍历list,展示每个元素...

    JSTL详解

    JavaServer Pages Standard Tag Library (JSTL) 是一套用于简化JSP开发的标签库,它提供了许多预定义的标签,让开发者能够以更简洁、更易于理解和维护的方式编写JSP页面。JSTL的主要目标是减少在JSP页面中使用脚本...

    JSTL标准标签库很详细的说明和使用指南

    ### JSTL标准标签库详解及使用指南 #### 一、引言 JSTL(JavaServer Pages Standard Tag Library,JavaServer 页面标准标签库)是一种用于简化JavaServer Pages (JSP) 页面开发的标准标签库。它由Apache Jakarta...

    jstl标签.rar

    《JSTL标签详解——HTML开发者的利器》 在Web开发领域,JSTL(JavaServer Pages Standard Tag Library,Java服务器页面标准标签库)是一种强大的工具,尤其对于HTML开发者而言,它极大地简化了代码,提高了可读性和...

    jstl标签库jar包

    **JSTL标签库与JAR包详解** JavaServer Pages Standard Tag Library(JSTL)是Java EE领域中用于简化JSP开发的一个重要工具。它提供了一组预定义的标签,帮助开发者更高效地处理常见任务,如迭代、条件判断、国际化...

    java jstl学习详解过程

    #### JSTL 核心标签库详解 **核心标签库**是最常用的标签库之一,它提供了多种标签来帮助开发者更高效地处理 JSP 页面中的逻辑。这些标签主要分为四类: 1. **多用途核心标签** - `&lt;c:out&gt;`:用于显示数据。 - `...

Global site tag (gtag.js) - Google Analytics