- 浏览: 85231 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
[转]网页打印问题 -
agh_alan:
sssssssssssssssssssssssssssssss ...
[转]网页打印问题 -
vieri122:
请问 抓包数据如何让中文数据不是乱码?
使用 Eclipse 中的 TCP/IP Monitor -
shingo7:
多谢整理看了后帮助很大
tomcat5集群中的SESSON复制 -
huyiho0311:
...
CSS样式使用优先级判断
9.5 I18N formatting 标签库
看到 I18N 就应该想到知识“国际化”, I18N formatting 标签库就是用于在 JSP 页面中做国际化的动作。在该标签库中的标签一共有 12 个,被分为了两类,分别是:
q 国际化核心标签: <fmt:setlocale></fmt:setlocale> 、 <fmt:bundle></fmt:bundle> 、 <fmt:setbundle></fmt:setbundle> 、 <fmt:message></fmt:message> 、 <fmt:param></fmt:param> 、 <fmt:requestencoding></fmt:requestencoding> 。
q 格式化标签: <fmt:timezone></fmt:timezone> 、 <fmt:settimezone></fmt:settimezone> 、 <fmt:formatnumber></fmt:formatnumber> 、 <fmt:parsenumber></fmt:parsenumber> 、 <fmt:formatdate></fmt:formatdate> 、 <fmt:parsedate></fmt:parsedate> 。
下面只选择其中常见的一些标签和属性进行介绍。
9.5.1 用于设置本地化环境的 <fmt:setlocale></fmt:setlocale> 标签
<fmt:setlocale></fmt:setlocale> 标签用于设置 Locale 环境。它的属性和描述如表 9.17 所示:
表 9.17 <fmt:setlocale></fmt:setlocale> 标签属性和说明
属性 |
描述 |
value |
Locale 环境的指定,可以是 java.util.Locale 或 String 类型的实例 |
scope |
Locale 环境变量的作用范围(可选) |
下面看一个示例:
<fmt:setlocale value="zh_TW"></fmt:setlocale>
表示设置本地环境为繁体中文。
9.5.2 用于资源文件绑定的 <fmt:bundle></fmt:bundle> 、 <fmt:setbundle></fmt:setbundle> 标签
这两组标签用于资源配置文件的绑定,唯一不同的是 <fmt:bundle></fmt:bundle> 标签将资源配置文件绑定于它标签体中的显示, <fmt:setbundle></fmt:setbundle> 标签则允许将资源配置文件保存为一个变量,在之后的<nobr>工作</nobr>可以根据该变量来进行。
根据 Locale 环境的不同将查找不同后缀的资源配置文件,这点在国际化的任何技术上都是一致的,通常来说,这两种标签单独使用是没有意义的,它们都会与 I18N formatting 标签库中的其他标签配合使用。它们的属性和描述如表 9.18 所示:
表 9.18 <fmt:bundle></fmt:bundle> 、 <fmt:setbundle></fmt:setbundle> 标签属性和说明
属性 |
描述 |
basename |
资源配置文件的指定,只需要指定文件名而无须扩展名,二组标签共有的属性 |
var |
<fmt:setbundle></fmt:setbundle> 独有的属性,用于保存资源配置文件为一个变量 |
scope |
变量的作用范围 |
下面看一个示例
<fmt:setlocale value="zh_CN"></fmt:setlocale>
<fmt:setbundle var="applicationBundle" basename="applicationMessage"></fmt:setbundle>
该示例将会查找一个名为 applicationMessage_zh_CN.properties 的资源配置文件,来作为显示的 Resource 绑定。
9.5.3 用于显示资源配置文件信息的 <fmt:message></fmt:message> 标签
用于信息显示的标签,将显示资源配置文件中定义的信息。它的属性和描述如表 9.19 所示:
表 9.19 标签属性和说明
属性 |
描述 |
key |
资源配置文件的“键”指定 |
bundle |
若使用 <fmt:setbundle></fmt:setbundle> 保存了资源配置文件,该属性就可以从保存的资源配置文件中进行查找 |
var |
将显示信息保存为一个变量 |
scope |
变量的作用范围 |
下面看一个示例:
<fmt:setbundle var="applicationBundle" basename="applicationMessage"></fmt:setbundle>
<fmt:bundle basename="applicationAllMessage"></fmt:bundle>
<fmt:message key="userName"></fmt:message>
<fmt:message bundle="${applicationBundle}" key="passWord"></fmt:message>
该示例使用了两种资源配置文件的绑定的做法,“ applicationMessage ”资源配置文件利用 <fmt:setbundle></fmt:setbundle> 标签被赋于了变量“ applicationBundle ”,而作为 <fmt:bundle></fmt:bundle> 标签定义的“ applicationAllMessage ”资源配置文件作用于其标签体内的显示。
q 第一个 <fmt:message></fmt:message> 标签将使用“ applicationAllMessage ”资源配置文件中“键”为“ userName ”的信息显示。
q 第二个 <fmt:message></fmt:message> 标签虽然被定义在 <fmt:bundle></fmt:bundle> 标签体内,但是它使用了 bundle 属性,因此将指定之前由 <fmt:setbundle></fmt:setbundle> 标签保存的“ applicationMessage ”资源配置文件,该“键”为“ passWord ”的信息显示。
9.5.4 用于参数传递的 <fmt:param></fmt:param> 标签
<fmt:param></fmt:param> 标签应该位于 <fmt:message></fmt:message> 标签内,将为该消息标签提供参数值。它只有一个属性 value 。
<fmt:param></fmt:param> 标签有两种使用版本,一种是直接将参数值写在 value 属性中,另一种是将参数值写在标签体内。
9.5.6 用于为请求设置字符编码的 <fmt:requestencoding></fmt:requestencoding> 标签
<fmt:requestencoding></fmt:requestencoding> 标签用于为请求设置字符编码。它只有一个属性 value ,在该属性中可以定义字符编码。
9.5.7 用于设定时区的 <fmt:timezone></fmt:timezone> 、 <fmt:settimezone></fmt:settimezone> 标签
这两组标签都用于设定一个时区。唯一不同的是 <fmt:timezone></fmt:timezone> 标签将使得在其标签体内的工作可以使用该时区设置, <fmt:setbundle></fmt:setbundle> 标签则允许将时区设置保存为一个变量,在之后的工作可以根据该变量来进行。它们的属性和描述如表 9.20 所示:
表 9.20 <fmt:timezone></fmt:timezone> 、 <fmt:settimezone></fmt:settimezone> 标签 属性和说明
属性 |
描述 |
value |
时区的设置 |
var |
<fmt:settimezone></fmt:settimezone> 独有的属性,用于保存时区为一个变量 |
scope |
变量的作用范围 |
9.5.8 用于格式化数字的 <fmt:formatnumber></fmt:formatnumber> 标签
formatNumber > 标 签用于格式化数字。它的属性和描述如表 9.21 所示:
表 9.21 <fmt:formatnumber></fmt:formatnumber> 标签属性和说明
属性 |
描述 |
value |
格式化的数字,该数值可以是 String 类型或 java.lang.Number 类型的实例 |
type |
格式化的类型 |
pattern |
格式化模式 |
var |
结果保存变量 |
scope |
变量的作用范围 |
maxIntegerDigits |
指定格式化结果的最大值 |
minIntegerDigits |
指定格式化结果的最小值 |
maxFractionDigits |
指定格式化结果的最大值,带小数 |
minFractionDigits |
指定格式化结果的最小值,带小数 |
<fmt:formatnumber></fmt:formatnumber> 标签实际是对应 java.util.NumberFormat 类, type 属性的可能值包括 currency (货币)、 number (数字)和 percent (百分比)。
下面看一个示例。
<fmt:formatnumber var="money" type="currency" value="1000.888"></fmt:formatnumber>
9.5.9 用于解析数字的 <fmt:parsenumber></fmt:parsenumber> 标签
<fmt:parsenumber></fmt:parsenumber> 标签用于解析一个数字,并将结果作为 java.lang.Number 类的实例返回。 <fmt:parsenumber></fmt:parsenumber> 标签看起来和 <fmt:formatnumber></fmt:formatnumber> 标签的作用正好相反。它的属性和描述如表 9.22 所示:
表 9.22 标签属性和说明
属性 |
描述 |
value |
将被解析的字符串 |
type |
解析格式化的类型 |
pattern |
解析格式化模式 |
var |
结果保存变量,类型为 java.lang.Number |
scope |
变量的作用范围 |
parseLocale |
以本地化的形式来解析字符串,该属性的内容应为 String 或 java.util.Locale 类型的实例 |
下面看一个示例。
<fmt:parsenumber var="num" type="percent" value="15%"></fmt:parsenumber>
解析之后的结果为“ 0.15 ”。
9.5.10 用于格式化日期的 <fmt:formatdate></fmt:formatdate> 标签
<fmt:formatdate></fmt:formatdate> 标签用于格式化日期。它的属性和描述如表 9.23 所示:
表 9.23 标签属性和说明
属性 |
描述 |
value |
格式化的日期,该属性的内容应该是 java.util.Date 类型的实例 |
type |
格式化的类型 |
pattern |
格式化模式 |
var |
结果保存变量 |
scope |
变量的作用范围 |
timeZone |
指定格式化日期的时区 |
<fmt:formatdate></fmt:formatdate> 标签与 <fmt:timezone></fmt:timezone> 、 <fmt:settimezone></fmt:settimezone> 两组标签的关系密切。若没有指定 timeZone属性, 也可以通过 <fmt:timezone></fmt:timezone> 、 <fmt:settimezone></fmt:settimezone> 两组标签设定的时区来格式化最后的结果。
9.5.11 用于解析日期的 <fmt:parsedate></fmt:parsedate> 标签
<fmt:parsedate></fmt:parsedate> 标签用于解析一个日期,并将结果作为 java.lang.Date 类型的实例返回。 <fmt:parsedate></fmt:parsedate> 标签看起来和 <fmt:formatdate></fmt:formatdate> 标签的作用正好相反。它的属性和描述如表 9.24 所示:
表 9.24 <fmt:parsedate></fmt:parsedate> 标签属性和说明
属性 |
描述 |
value |
将被解析的字符串 |
type |
解析格式化的类型 |
pattern |
解析格式化模式 |
var |
结果保存变量,类型为 java.lang.Date |
scope |
变量的作用范围 |
parseLocale |
以本地化的形式来解析字符串,该属性的内容为 String 或 java.util.Locale 类型的实例 |
timeZone |
指定解析格式化日期的时区 |
<fmt:parsenumber></fmt:parsenumber> 和 <fmt:parsedate></fmt:parsedate> 两组标签都实现解析字符串为一个具体对象实例的工作,因此,这两组解析标签对 var 属性的字符串参数要求非常严格。就 JSP 页面的表示层前段来说,处理这种解析本不属于份内之事,因此 <fmt:parsenumber></fmt:parsenumber> 和 <fmt:parsedate></fmt:parsedate> 两组标签应该尽量少用,替代工作的地方应该在服务器端表示层的后段,比如在 Servlet 中。
相关推荐
JavaServer Pages Standard Tag Library (JSTL) 是一套用于简化JSP开发的标签库,它提供了许多预定义的标签,让开发者能够以更简洁、更易于理解和维护的方式编写JSP页面。JSTL的主要目标是减少在JSP页面中使用脚本...
在实际开发中,`JSTL_标签库详解(一个不漏).doc`和`JSTL核心标签库.doc`这样的文档是极有价值的参考资料,它们详细解释了每个标签的用法、属性以及示例,可以帮助开发者快速理解和掌握JSTL的使用。确保阅读并理解...
### JSTL详解 #### 一、JSTL简介与环境搭建 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是为简化和标准化 JavaServer Pages 开发而设计的一组标准标签。通过使用 JSTL,开发者...
**JSTL详解** JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一套用于处理常见JSP任务的标签,如迭代、条件判断、XML处理等,旨在减少在JSP页面中的脚本代码,提高页面的...
5. **函数标签库 (Function Tags)**:提供了一系列预定义的函数,便于调用。 **EL表达式的基本形式**: EL表达式通常以`${}`包裹,例如`${sampleValue + 1}`。在这个例子中,`sampleValue`是一个变量,`+ 1`是操作...
本资料包涵盖了三个关键主题:Java数据结构、IO(输入/输出)结构图以及JSTL(JavaServer Pages Standard Tag Library)的详解,这些都是Java开发中的核心概念。下面将逐一深入探讨这些知识点。 首先,我们来谈谈...
### JSTL详解—JSP页面编写规范 #### 概述 JSTL(JSP Standard Tag Library,JSP标准标签库)是一种被广泛应用于JavaServer Pages (JSP) 页面中的标准化标签库,旨在简化JSP页面开发过程,提高代码可读性和可维护...
**JSTL详解--Core标签库介绍** JavaServer Pages(JSP)标准标记库(JSTL)是一个关键的工具,旨在减少JSP页面中的脚本元素,提高代码的可维护性和可读性。JSTL包含了一系列定制的标记库,用于实现常见的Web应用...
- **引入必要的JAR包**:为了使用JSTL,需要在项目中添加`jstl-1.2.jar`和`standard.jar`两个JAR包。 - **定义标签库前缀**:在JSP页面顶部使用`<%@ taglib %>`指令定义JSTL的前缀。例如: ```jsp ...
5. **函数标签库(Functions Taglib)**:提供一系列预定义的函数,方便调用和操作数据。 **EL表达式语言的特点**: - 类型转换自动化:EL会自动处理不同类型之间的转换,如从String到其他类型。 - 简化数据获取:EL...
**JSTL(JavaServer Pages Standard Tag Library)详解** JSTL是JavaServer Pages标准标签库,它提供了一系列标签来简化JSP页面的编写,使代码更加简洁、易读,提高开发效率。JSTL主要包含五个核心标签库:Core、 ...
### Java JSTL 学习详解过程 #### JSTL简介 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是一组由 Sun Microsystems 提供的标准标签库,它允许开发者在 JSP 页面中使用预定义的...
在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示 逻辑已经不是新技术了...鉴于此,出现了 JSTL(JSP Standard Tag Library)。大多数 JSP 页面逻辑 提供了实现的 JSTL 技术,该技术本身就是一个标签库。