`

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应用程序国际化过程中的重要作用。这些标签不仅简化了开发者的工作,还使得应用程序能够更好地适应全球用户的需求。掌握这些标签的使用方法,对于提高...

    使用jstl fmt 实现国际化

    总结来说,使用JSTL fmt标签库实现国际化涉及创建和管理Resource Bundle,设置locale,注册资源包,以及在JSP页面中使用`fmt:message`、`fmt:formatDate`和`fmt:formatNumber`标签。这个过程可以帮助开发者构建出...

    JSTL中文帮助文档

    本文将对JSTL的基础概念、核心标签库、XML处理标签库、国际化格式化标签库以及数据库访问标签库进行详细介绍,并探讨如何在JSP页面中有效地利用这些标签来提高开发效率。 #### 二、JSTL简介 JSTL是随JSP 1.2版本...

    JSTL fmt_formatNumber 数字、货币格式化

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

    jstl1.1使用说明.pdf

    ### JSTL 1.1 使用说明 #### JSTL 1.1 简介 JSTL(JavaServer Pages Standard Tag Library)是专为Java Web开发设计的一套标准标签库,它由JCP(Java Community Process)指定并发布。最新版本JSTL 1.1提供了一...

    jstl标签库jar包、例子、jstl中文帮助文档

    **JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中的一个重要组成部分,它为JSP页面提供了一套标准的标签,使得开发者能够更方便地处理常见任务,如控制流、数据操作和XML处理等。...

    jstl中文参考手册

    本文将深入探讨JSTL的核心概念、各个标签库的功能及其使用场景,并重点介绍如何利用JSTL来减少JSP页面中的脚本元素,从而简化软件维护工作。 #### 二、JSTL概述 ##### 2.1 定义与背景 JSTL是一个实现了常用服务器...

    用于dreamweaver的标签提示和格式化.JSTL的c,fmt,x和struts2

    而JSTL(JavaServer Pages Standard Tag Library)是Java服务器页面的一个标准标签库,它使得在JSP中处理常见任务变得更加简单和标准化。JSTL包括几个核心标签库,如c(条件语句)、fmt(格式化)、x(XML处理)等,...

    jstl的两个jar包

    这将允许我们在JSP页面中使用如`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等JSTL标签。 总的来说,JSTL是Java Web开发中一个重要的工具,它提高了代码的可读性和可维护性,减少了与Servlet和JSP脚本元素的交互。`jstl-1.2....

    jstl jar包下载

    同时,在JSP页面中,需要通过`&lt;%@ taglib %&gt;`指令引入JSTL的TLD(Tag Library Descriptor)文件,例如`&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;`, `&lt;%@ taglib prefix="fmt" uri=...

    JSTL中文帮助文档_java_JSTL_

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种核心库,它为JSP页面提供了一系列预定义的标签,用于简化页面逻辑,提高代码的可读性和可维护性。JSTL主要由五个核心标签库组成:Core、...

    jstl-jar包.zip

    项目中添加 jstl.jar 和 standard.jar 两个jar包。然后在页面上添加如下引用: &lt;%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%&gt; &lt;%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt...

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    3. 使用JSTL标签:现在可以在JSP页面中使用JSTL标签,如`&lt;c:forEach&gt;`进行迭代,`&lt;c:if&gt;`进行条件判断,`&lt;fmt:formatDate&gt;`格式化日期等。 总之,JSTL是提升JSP页面编写效率的重要工具,而依赖注入则是现代Java应用...

    JSTL中英文对照版.chm

    这个资源,"JSTL中英文对照版.chm",显然是一份详细的JSTL标签库的中文和英文对照参考手册,对于学习和使用JSTL的开发者来说,是一份非常宝贵的学习资料。 JSTL主要由以下几个核心部分组成: 1. **Core**:这是...

    jstljar包包含jstl.jar和standard.jar文件

    这样,就可以在页面中使用`c:`和`fmt:`前缀的JSTL标签了。 **JSTL与EL的协同工作**:虽然EL可以独立于JSTL使用,但两者结合使用能发挥更大的效能。JSTL的标签可以接收EL表达式作为参数,使得页面逻辑更加简洁。...

    JSTL标签库-tomcat10-简化JSP中java代码

    JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中一个重要的标签库,主要用于简化JSP页面中的Java代码,提高JSP页面的可读性和维护性。在Tomcat 10这个高性能、轻量级的Servlet容器中,JSTL的使用...

    JSTL相关Jar包(jstl+standard)

    JSTL的主要目标是减少在JSP页面中使用脚本元素,提升代码的可读性和可维护性。 在JSTL中,主要包含以下几个核心组件: 1. **Core**:提供了基本的控制结构,如迭代、条件判断等。 2. **XML**:用于处理XML文档。 3...

Global site tag (gtag.js) - Google Analytics