`

fmt标签库

    博客分类:
  • JSP
阅读更多

原文参考:http://blog.csdn.net/xiaoping8411/article/details/4238340

 

JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。实现 这些功能需要I18N格式标签库(I18N-capable formation tags liberary)。引入该标签库的方法为:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
I18N格式标签库提供了12个标签,这些 标签从功能上可以划分为3类如下:
(1)数字日期格式化:formatNumber标签、parseNumber标签、formatData标签、parseDate标签、timeZone标签、setTimeZone标签。
(2)读取消息资源:bundle标签、setBundle标签、message标签。
(3)国际化:setlocale标签、requestEncoding标签。
以下是各个标签的用途和属性以及简单示例。

一、<fmt:formatNumber>标签

1、作用:<fmt:formatNumber>标签依据特定的区域将数字改变为不同的格式来显示。
2、语法:<fmt:formatNumber value="" type="" pattern="" currencyCode="" currencySymbol="" groupingUsed="" maxIntegerDigits="" minIntegerDigits="" maxFractionDigits="" minFractionDigits=""

var="" scope="" ></fmt:formatNumber>

 

3、属性:

 序号

属性

描述

1

value

要格式化的数字,可以是 EL 表达式或常量。(必须)

2

type

指定要格式化的数据的类型(具体类型可见下表),默认为number。(可选)

3

pattern

数据格式,如#.##。(可选)

4

currencyCode

货币单位代码。(可选)

5

currencySymbol

货币符号($、¥),如果不指定区域,则会根据语言区域自动选择currencySymbol。(可选)

6

groupingUsed

是否对整数部分进行分组显示(即每三位用逗号隔开),默认为true(分组显示)。(必须)

7

maxIntegerDigits

整数部分最多显示多少位。(可选)

8

minIntegerDigits

整数部分最少显示多少位。(可选)

9

maxFractionDigits

小数部分最多显示多少位。(可选)

10

minFractionDigits

小数部分最少显示多少位。(可选)

11

var

用来存储格式化以后数据的变量,通过该变量访问数据。(可选)

12

scope

var变量的有效范围,主要有:pagerequestsessionapplication。若没有指定,默认为page。(可选)

 

Type属性的类型应用:

序号

类型

描述

示例

1

number

数字格式

0.8

2

currency

当地货币

0.8

3

percent

百分比格式

80%

 

4、实例:

<table border="1" cellpadding="0" cellspacing="0">
 <tr>
 <td width="100">序号 </td>
 <td width="100">测试属性值</td>
 <td width="100">使用数据</td>
 <td width="100">结果</td>
 <td width="300">说明</td>
 </tr>

 <tr>
 <td>1</td>
 <td>pattern:###.#</td>
 <td>108.755</td>
 <td><fmt:formatNumber type="number" pattern="###.##">108.755</fmt:formatNumber></td>
 <td>当pattern小数部分设置的位数小于数据小数部分位数时,自动使用四舍五入法</td>
 </tr>
 
 <tr>
 <td>2</td>
 <td>pattern:自动补零###.00</td>
 <td>108.7</td>
 <td><fmt:formatNumber type="number" pattern="###.00">108.7</fmt:formatNumber></td>
 <td>当pattern指定小数部分0的个数时,表示数据的小数部分不足多少位时自动补零</td>
 </tr>
 
 <tr>
 <td>3</td>
 <td>pattern:科学计数法#.##E0</td>
 <td>9557</td>
 <td><fmt:formatNumber type="number" pattern="#.##E0">9557</fmt:formatNumber></td>
 <td>当数据的位数>指定的位数时,则显示指定的位数,如:patter设定的##为2个,那么就保留2位显示</td> 
 </tr>
 
 <tr>
 <td>4</td>
 <td>pattern:科学计数法#.####E0</td>
 <td>955</td>
 <td><fmt:formatNumber type="number" pattern="#.####E0">955</fmt:formatNumber></td>
 <td>当数据的位数超过指定的位数时,则显示”数据位数-1“位(减去的一位作为整数部分,其他的为小数部分)。</td> 
 </tr>
 
 <tr>
 <td>5</td>
 <td>groupingUsed:使用分组</td>
 <td>123456789</td>
 <td><fmt:formatNumber type="number" groupingUsed="true">123456789</fmt:formatNumber></td>
 <td>使用默认分组,三位一体。</td>
 </tr>

 <tr>
 <td>6</td>
 <td>groupingUsed:不使用分组</td><td>9557</td>
 <td><fmt:formatNumber type="number" groupingUsed="false" >9557</fmt:formatNumber></td>
 <td>不使用分组。</td>
 </tr>
 
 <tr>
 <td>7</td>
 <td>type:number数字格式</td>
 <td>9557.1234</td>
 <td><fmt:formatNumber type="number" maxIntegerDigits="3" pattern="#.##" minFractionDigits="2">9557.1234</fmt:formatNumber></td>
 <td>使用位数限定,根据指定的位数显示,其他数字忽略。例如:整数部分最大3位,9不被显示;小数部分最少2位,34不显示。</td>
 </tr>

 <tr>
 <td>8</td>
 <td>type:percent百分比格式</td><td>0.98</td>
 <td><fmt:formatNumber type="percent">0.98</fmt:formatNumber></td>
 <td>用百分比形式显示一个数据。</td>
 </tr>

 <tr>
 <td>9</td>
 <td>type:currency货币格式化</td><td>188.88</td>
 <td><fmt:formatNumber type="currency" >188.8</fmt:formatNumber></td>
<td>将一个数据转化为货币形式输出,如果不指定区域,则会根据语言区域自动选择currencySymbol。</td>
 </tr>
 
 <tr>
 <td>10</td>
 <td>var属性</td>
 <td>188.88</td>
 <td><fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber>
 ${money}
 </td>
 <td>存储的money的值为${money} </td>
 </tr>
 </table>

 效果:


5、代码说明:

1)从应用角度可以把属性分为三类:数字格式化、货币格式化、百分比格式化。使用type指定类型。

 

2)应用于数字格式化的属性有:partten属性、maxIntegerDigits属性、minIntegerDigits属性、maxFractionDigits属性和minFactionDigits属性。其中partten属性在设定格式化样式时会比较准确如:四舍五入、科 学计数法的使用。而使用maIntegerDirgits等属性时,只把设定位数以外的数字舍去。

 

3)货币格式化可以使用数字格式化的所有属性。如果有必要建议使用partten属性。currencyCode属性和currencySymbol只用于货币格式化。

 

4)百分比格式化使用到的属性为type属性、partten属性,设定type属性的类型为percent即可。

 

5)使用var属性时,会将格式化后的值存在JSP的某个范围内(一个String类型的字符串包括符号等)。<frm:forNumber>将不再输出格式化后的值可以使用EL表达式输出。

 

6)通用属性:type属性、partten属性、var属性和scope属性。

 

二、<fmt: parseNumber>标签

1、作用:<fmt: parseNumber>标签用来将格式化后的数字、货币、百分比都转化为数字类型。它可以看作是<fmt:formatNumber>的逆运算。相应的参数和类型的配置和使用<fmt:formatNumber>格式化时相同。

 

2、语法:<fmt:parseNumber value="" type="" pattern="" integerOnly="" parseLocale=""  scope="" var=""></fmt:parseNumber>

 

3、属性:

序号

属性

描述

1

value

被解析的字符串。(必须)

2

type

指定要格式化的数据的类型(具体类型可见下表),默认为number。(必须)

3

pattern

解析之后的样式。(可选)

4

integerOnly

转换后的数字是否只显示整数部分。(可选)

5

parseLocale

指定区域来转换字符串,默认使用本地样式。(可选)

6

var

用来存储格式化以后数据的变量,通过该变量访问数据。(可选)

7

scope

var变量的有效范围,主要有:pagerequestsessionapplication。若没有指定,默认为page。(可选)

 

4、实例:

<ul>
  <fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber>
 <li>格式化前的数据为:<c:out value="${money}"></c:out>
 <fmt:parseNumber var="money" type="currency">${money}</fmt:parseNumber>
 <li>格式化后的数据为:<c:out value="${money}"></c:out>
 <li>可以对格式化的后的数据进行运算(加上200): 
 <c:out value="${money+200}"></c:out>
 <li>对百分比进行格式化98%为:
 <fmt:parseNumber type="percent">98%</fmt:parseNumber>
</ul>

 效果:

三、<fmt:formatDate>标签

1、作用:<fmt:formatDate>标签用来格式化日期和时间。

 

2、语法:<fmt:formatDate value=""  type=""  pattern="" dateStyle=""  timeStyle="" timeZone=""  scope="" var="" ></fmt:formatDate>

 

3、属性:

序号

属性

描述

1

value

将要被格式化的日期对象,可以Java.util.Date对象,也可以是EL表达式类型的Date对象(必须)

2

type

要显示的部分类型,主要有三个类型:time(只显示时间)、date(只显示日期)、both(显示日期和时间),默认只显示日期(可选)

3

pattern

格式化的样式(可选)

4

dateStyle

设定日期的显示方式,可选值见下表,默认使用default样式(可选)

5

timeStyle

设定时间的显示方式, 可选值见下表,默认使用default样式(可选)

6

timeZone

使用的时区,默认使用本时区(可选)

7

scope

变量的作用范围:pagerequestsessionapplication。若没有指定,默认为保存于 page 范围中的变量(可选)

8

var

用来存储格式化以后数据的变量,通过该变量访问数据。(可选)

 

dateStyletimeStyle可选值如下(以java.util.Date的当前时间为例):

序号

类型

描述

示例

1

default

默认格式

2015-4-26 22:02:30

2

short

比较简单类型

15-4-26 下午10:02

3

long

比较详细类型

2015426 下午100230

3

full

详细类型

2015426 星期日 下午100230 CST

 

4、实例:

<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
   <ul>
   <li>默认值:<fmt:formatDate value="${date}"></fmt:formatDate></li>
   <li>只显示时间:<fmt:formatDate value="${date}" type="time"></fmt:formatDate></li>
   <li>只显示日期:<fmt:formatDate value="${date}" type="date"></fmt:formatDate></li>
   <li>两者都显示:<fmt:formatDate value="${date}" type="both"></fmt:formatDate></li>
   <li>自定义格式:<fmt:formatDate value="${date}" type="date" pattern="yyyy年MM月dd日"></fmt:formatDate></li>
   <li>设置dateStyle和timeStyle(short):<fmt:formatDate value="${date}" type="both" dateStyle="short" timeStyle="short"></fmt:formatDate></li>
   <li>设置dateStyle和timeStyle(long):<fmt:formatDate value="${date}" type="both" dateStyle="long" timeStyle="long"></fmt:formatDate></li>
   <li>设置dateStyle和timeStyle(full):<fmt:formatDate value="${date}" type="both" dateStyle="full" timeStyle="full"></fmt:formatDate></li>
   <li>设置dateStyle和timeStyle(default):<fmt:formatDate value="${date}" type="both" dateStyle="default" timeStyle="default"></fmt:formatDate></li>
   <fmt:formatDate value="${date}" type="date" pattern="yyyy年MM月dd日" scope="session" var="defDate"></fmt:formatDate>
   <li>通过var属性访问自定义格式之后的数据:<c:out value="${defDate}"></c:out></li>
   <li>访问scope属性指定的范围中的var值:
   <c:out value="${sessionScope['defDate']}"></c:out>&nbsp;&nbsp;&nbsp;
   <c:out value="${sessionScope.defDate}"></c:out>
   </li>
   </ul>

 效果:
 

5、代码说明:

(1)首先通过配置JavaBean在页面上实例化java.util.Date对象。实现代码如下:

<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>

 

(2)对日期对象进行格式化时${date}是一个日期对象,如果给value设的值为String时程序会报错。

 

(3)设置typeboth时,将显示日期和时间,同时示例中依次改变dateStyletimeStyle的值作为比较。

 

(4)没有设置var属性,标签中有值或者value属性中有值,加载时会自动显示数据。设置var属性之后,标签中的值不会再显示,只有通过从var中取值手动让它显示出来。

 

四、<fmt:parseDate>标签

1、作用:< fmt:parseDate >标签用来将字符串类型的时间或日期转化为时间或日期对象,其作用与<fmt:formatDate>标签相反。

 

2、语法:<fmt:parseDate value=""  type=""  pattern=""  dateStyle="" timeStyle="" parseLocale="" timeZone=""  var=""  scope=""></fmt:parseDate>

 

3、属性:

序号

属性

描述

1

value

将要被格式化的日期,String类型(必须)

2

type

字符串的类型,主要有三个类型:time(只显示时间)、date(只显示日期)、both(显示日期和时间)(可选)

3

pattern

字符串使用的时间样式(可选)

4

dateStyle

字符串使用的日期显示方式,可选值见下表,默认使用default样式(可选)

5

timeStyle

字符串使用的时间显示方式, 可选值见下表,默认使用default样式(可选)

6

parseLocale

取代默认地区设定,默认使用本地区(可选)

7

timeZone

使用的时区,默认使用本时区(可选)

8

scope

变量的作用范围:pagerequestsessionapplication。若没有指定,默认为保存于 page 范围中的变量(可选)

9

var

用来存储格式化以后数据的变量,通过该变量访问数据。(可选)

 

4、实例:

<jsp:useBean id="date2" class="java.util.Date"></jsp:useBean>
   <ul>
   <li>转化之前的值:<fmt:formatDate value="${date2}" type="both" dateStyle="full" timeStyle="full"></fmt:formatDate></li>
   <fmt:formatDate value="${date2}" type="both" dateStyle="full" timeStyle="full"  var="aa"></fmt:formatDate>
   <li>
   <fmt:parseDate var="bb" type="both" dateStyle="full" timeStyle="full">${aa}</fmt:parseDate>
   通过C标签输出转化之后的值:<c:out value="${bb}"></c:out>
   </li>
   <li>
   通过Java代码输出转化之后的值:<br />
   <%
   out.println("转化之后的值"+pageContext.getAttribute("bb").toString());
   out.println("<br>");
   out.println("hashCode:"+pageContext.getAttribute("bb").hashCode());
//  
 %>
   </li>
    </ul>

 效果:

 

  • 大小: 32.7 KB
  • 大小: 3.4 KB
  • 大小: 10.6 KB
  • 大小: 4.5 KB
分享到:
评论

相关推荐

    fmt标签 fmt标签 fmt 标签

    在JavaServer Pages (JSP) 开发中,fmt标签库是实现国际化(I18N)和格式化数据的关键工具。fmt标签库提供了12个标签,分为两大类:国际化核心标签和格式化标签。这些标签使得开发者能够在JSP页面中轻松地处理多语言...

    fmt标签介绍

    fmt标签库是Java Server Pages Standard Tag Library (JSTL)的一部分,专门用于处理I18N格式化和资源绑定,提供了一套丰富的标签来简化这一过程。 fmt标签库主要分为两个大类:国际化核心标签和格式化标签。国际化...

    jstl fmt标签详解

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

    使用jstl fmt 实现国际化

    JSTL(JavaServer Pages Standard Tag Library)是用于增强JSP页面功能的一组标签库,其中fmt标签库是专门用来处理日期、数字格式化以及国际化问题的。本文将详细介绍如何使用JSTL fmt标签来实现国际化。 首先,...

    jstl1.2标签库jar包

    - **fmt标签库** - `fmt:formatNumber`:格式化数字。 - `fmt:formatDate`:格式化日期和时间。 - `fmt:message`:国际化消息处理。 - **fn函数库** - `fn:length`:获取数组或集合的长度。 - `fn:escapeXml`...

    jstl一个开源的JSP标签库

    4. **JSTL国际化的fmt标签库**:支持多语言环境,提供日期、数字、货币格式化等功能,如`&lt;fmt:message&gt;`和`&lt;fmt:formatNumber&gt;`。 5. **JDBC标签库**:简化了数据库操作,如`&lt;sql:query&gt;`和`&lt;sql:update&gt;`,可以...

    fmt标签详解

    在实际使用中,`fmt`标签需要引用JSTL库,通常在项目中会包含`jakarta-taglibs-standard-1.1.2/lib`目录下的`jstl.jar`和`standard.jar`,并在JSP页面中通过`&lt;%@ taglib&gt;`指令引入`fmt`库,如下所示: ```jsp ...

    fmt 标签总结

    总之,`fmt`标签是关于格式化输出的关键概念,涵盖了从基础的`printf`函数到现代编程语言中的高级格式化库。了解和掌握这些知识点对于任何编程任务都大有裨益。通过实践和阅读源码,我们可以更好地理解和运用这些...

    fmt 国际化格式标签库实践

    ### FMT 国际化格式标签库实践 #### 一、引言 在现代Web开发中,为了提供更好的用户体验和适应全球化的需求,国际化(Internationalization)与本地化(Localization)成为了不可或缺的一部分。Java Server Pages ...

    fmt标签的使用,对struts开发的程序员是一个很好的帮助

    ### FMT标签在Struts开发中的应用:提升程序员效率与代码质量 在Java Web开发领域,Struts框架作为MVC架构的典范,一直备受开发者青睐。然而,在处理国际化(I18N)与格式化输出时,Struts的原生支持显得较为基础,...

    导入JSTL标签库的两个jar包

    fmt标签库提供了格式化日期、数字和消息的功能,而sql标签库则用于执行数据库操作。`standard.jar`还包含了对JSP 2.0的EL(Expression Language)的支持,这是JSP页面中用来访问和操作数据的强大工具。 在实际开发...

    JSTL标签详解入门首选

    接下来是**FMT标签库**,它主要用于日期和数字的格式化。`&lt;fmt:formatDate&gt;`和`&lt;fmt:formatNumber&gt;`是两个常用标签。前者可以将日期对象转换成用户友好的字符串,后者可以将数字格式化。例如: ```jsp &lt;fmt:...

    javaweb课程设计基础知识+教程+课件_CORE核心标签.doc

    3. fmt 标签库:主要包含格式化相关的标签,例如:&lt;fmt:formatNumber&gt;、&lt;fmt:formatDate&gt; 等。 4. SQL 标签库:主要包含数据库操作相关的标签,例如:、&lt;sql:update&gt; 等。 5. XML 标签库:主要包含 XML 操作相关的...

    JSP中常用的JSTL fmt(format格式化)标签用法整理

    fmt标签库是JSTL中用于国际化的标签库,它支持i18n(国际化)格式标准,为Web应用提供了数字、日期和消息等的格式化和解析功能。 fmt标签库包含以下三类标签: 1. 数字日期格式化标签 - &lt;fmt:formatNumber&gt;标签:...

    JSTL标签 详细易懂

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

    JSTL标签参考手册.pdf

    除了核心标签库外,还提到了fmt标签库中的&lt;fmt:formatDate&gt;,它用于格式化日期和时间。fmt库中的其他标签还可以用于格式化数字,比如货币、百分比等。 JSTL还支持更高级的迭代,例如遍历map对象。在文档片段中提及...

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

    5. **JSTL fmt标签库**则提供了日期、时间、数字格式化功能,如: - `&lt;fmt:formatDate&gt;`:将日期或时间格式化。 - `&lt;fmt:formatNumber&gt;`:格式化数值。 - `&lt;fmt:message&gt;`:获取本地化的消息资源。 使用JSTL可以...

    jsp中标签JSTL英文帮助文档(chm格式)

    **fmt标签库**: 1. **fmt:formatDate**:格式化日期和时间。 2. **fmt:formatNumber**:格式化数字。 3. **fmt:message**:获取国际化消息。 4. **fmt:bundle**:加载资源包,用于多语言支持。 **Function标签库**...

    JavaWeb-12:自定义标签库开发&JSTL标签库

    在JavaWeb开发中,自定义标签库和JSTL(JavaServer Pages Standard Tag Library)是两个重要的组件,它们极大地提高了代码的可读性和可维护性。本教程将深入探讨这两个主题,帮助开发者更好地理解和应用它们。 一、...

Global site tag (gtag.js) - Google Analytics