`
x125521853
  • 浏览: 72710 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

第六章 格式化标签

    博客分类:
  • Jstl
阅读更多

一:JSTL格式化标签又称为I18N标签库,主要用来编写国际化的WEB应用,使用此功能可以对一个特定的语言请求做出合适的处理。

     例如:中国内地用户将显示简体中文,台湾地区则显示繁体中文,使用I18N格式化标签库还可以格式化数字和日期,例如同一数字或日趋,在不同国家可能有不同的格式,使用I18N格式标签库可以将数字和日期格式为当地的格式。

 

二:格式化标签

    <fmt:fromatNumber>

    <fmt:formatDate>

    <fmt:parseDate>

    <fmt:parseNumber>

    <fmt:setTimeZone>

    <fmt:timeZone>

    国际化标签

    <fmt:setLocale>

    <fmt:requestEncoding>

    <fmt:bundle>

    <fmt:message>

    <fmt:param>

    <fmt:setBundle>

    在JSP页面中要使用到格式化标签,需要引入下面的语句:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"% >

 

三:<fmt:formatNumber>

    此标签会根据区域定制的方式将数字格式化成数字,货币,百分比。

    此标签的属性:

    value:要格式化的数字

    type:按照什么类型格式化

    pattern:自定义格式化样式

    currencyCode:ISO-4721货币代码,只适用于按照货币格式化的数字

    currencySymbol: 货币符号,如¥,只适用于按照货币格式化的数字
    groupingUsed: 是否包含分隔符
    maxIntegerDigits: 整数部分最多显示多少位
    mixIntegerDigits: 整数部分最少显示多少位
    maxFractionDigits: 小数部分最多显示多位位
    minFractionDigits: 小数部分最少显示多位位
    var:存储格式化后的结果
    scope: 存储的范围

    示例1:   

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>chapter4.jsp</title>
	</head>
	<body>
		<div>
			<div>
				<fmt:setLocale value="fr_fr"/>
				<fmt:formatNumber value="123456789.012"/>
				<br/>
				<fmt:setLocale value="zh_cn"/>
				<fmt:formatNumber value="123456789.012"/>
				<br />
				<fmt:setLocale value="de_de"/>
				<fmt:formatNumber value="123456789.012"/>
				<br />				
			</div>
		</div>
	</body>
</html>

    注意:如果要实现国际化,那么编码格式要设置为utf-8.
          从程序运行效果可以看出,设定的区域不同,格式化数字的显示也会不同.

 

四:type属性:可以是数字(number),货币(currency),百分比(percent)

    示例2:   

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>chapter4.jsp</title>
	</head>
	<body>
		<div>
			<div>
				<fmt:setLocale value="zh_cn"/>
				<fmt:formatNumber value="0.3" type="number"/><br />
				<fmt:formatNumber value="0.3" type="currency"/><br />
				<fmt:formatNumber value="0.3" type="percent"/><br />								
			</div>
		</div>
	</body>
</html>

     currencyCode为货币代码,例如美元为USD,人民币为CNY等
     currencySymbol为货币符号例如,人民币为¥,美元为$。

     如果不指定区域,则会根据语言区域自动选择currencySymbol

   示例3:  

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>chapter4.jsp</title>
	</head>
	<body>
		<div>
			<div>
				<fmt:setLocale value="zh_cn"/>
				<fmt:formatNumber value="0.3" type="currency"/><br />
				<fmt:setLocale value="en_Us"/>
				<fmt:formatNumber value="0.3" type="currency"/><br />											
			</div>
		</div>
	</body>
</html>

    

   currencySymbol属性还可以自定义要显示的头标识,但是一定得type="currency"才会生效,例如:   

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>chapter4.jsp</title>
	</head>
	<body>
		<div>
			<div>
				<fmt:setLocale value="zh_cn"/>
				<fmt:formatNumber value="0.3" type="currency" currencySymbol="#"/><br />
				<fmt:setLocale value="en_Us"/>
				<fmt:formatNumber value="0.3" type="currency" currencySymbol="#"/><br />										
			</div>
		</div>
	</body>
</html>

  

    自定义数字样式
    <fmt:formatNumber value="12.31" pattern=".0000"/><br/>
    <fmt:formatNumber value="1234" pattern="###.##E0"/>
    会显示:
    12.3100
    1.234E3
    会四舍五入

    var:定义一个变量,存储格式化后的结果,scope指定变量存储的范围.用法和前面讲的标签一致.

 

五:<fmt:parseNumber>

     此标签用来将字符串类型的数字,货币或百分比转换成数字类型,和<fmt:formatNumber>标签的作用正好相反.

     value: 要转换的字符串
     type: 指定要转换的字符串为什么类型,可取值:number,percent,currency
     pattern: 自定义格式化样式
     parseLocale: 指定区域来转换字符串
     IntegerOnly:  转换后的数字是否只显示整数部分
     var:  存储转换后的结果
     scope: 存储的范围

 

    示例1:
    <fmt:parseNumber value="500,800,200"/>
    显示: 500800200

 

    示例2:
    <fmt:parseNumber value="52%" type="percent" />
    显示: 0.52 (52%在这里是一个字符串, type指定这个字符串是什么类型的值)

 

    示例3:
    <fmt:parseNumber value="¥123" type="currency" />
    显示123, ¥123在这里是一个字符串, type指定这个字符串是什么类型的值

 

    示例4:
    <fmt:parseNumber value="123.333" type="number" /><br/>
    <fmt:parseNumber value="123.333" type="number"  integerOnly="true"/><br/> 
    显示:
    123.333
    123
    integerOnly确定是否只显示整数部分.

 

    示例5:
   <fmt:parseNumber value="¥123.333" type="currency" parseLocale="zh_CN"/><br/>
   <fmt:parseNumber value="$123.333" type="currency" parseLocale="en_US"/><br/>
    parseLocale="en_US"主要是配合当type="currency"时用的,
    如果要转换货币的字符串类型为value="¥123.333",不设置语言环境的话,会取当前浏览器的默认设置,否则就要加上parseLocale="zh_CN",指定环境为中文环境
     如果要转换货币的字符串类型为value="$123.333",不设置语言环境的话,会取当前浏览器的默认设置,如果默认为zh_cn的话,程序会报错的,否则就要加上parseLocale="en_US",指定环境为英文美国环境

 

六:<fmt:formatDate />

     此标签可以将日期格式化.
     属性介绍:
     value 用来格式化的时间或日期
     type 指定格式化的是日期还是时间,或者两者都是取值范围:date,time,both
     pattern 自定义格式化样式
     dateStyle 日期的格式化样式
     timeStyle 时间的格式化样式
     timeZone 指定使用的时区
     var 存储格式化后的结果
     scope 指定存储的范围

 

     示例1:    

<fmt:setLocale value="zh_cn" />
<fmt:formatDate value="<%=new Date()%>" />
<br />
<fmt:setLocale value="zh_tw" />
<fmt:formatDate value="<%=new Date()%>" />

    大家可以看到大陆和台湾显示日期的格式是有区别的.

    显示结果:
    2009-12-7
    2009/12/7

 

    示例2:    

<fmt:setLocale value="zh_cn" />
<fmt:formatDate value="<%=new Date()%>" type="time"/>
<br />
<fmt:setLocale value="zh_tw" />
<fmt:formatDate value="<%=new Date()%>" type="time"/>

    显示结果:
    14:59:28
    下午 02:59:28

 

     type可取值及意义:
     date 格式化日期
     time格式化时间
     both格式化日期时间

     示例3:    

<fmt:setLocale value="zh_cn" />
<fmt:formatDate value="<%=new Date()%>" type="both" />
<br />
<fmt:setLocale value="zh_tw" />
<fmt:formatDate value="<%=new Date()%>" type="both" />

   输出结果:
   2009-12-7 21:24:26 
   2009/12/7 下午 09:24:26

   dateStyle用来设定日期显示的样式,其值可以是default, short, medium, long, full,请看示例:  

<fmt:setLocale value="zh_cn" />
<fmt:formatDate value="<%=new Date()%>" type="both" dateStyle="default" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" dateStyle="short" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" dateStyle="medium" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" dateStyle="long" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" dateStyle="full" />
<br />

    显示结果如下:
    2009-12-7 21:30:49
    09-12-7 21:30:49
    2009-12-7 21:30:49
    2009年12月7日 21:30:49
    2009年12月7日 星期一 21:30:49
    可以看到dateStyle属性只对日期部分起作用,时间部分没有作用.

 

    timeStyle用来显示时间部分的样式,取值范围同上   

<fmt:setLocale value="zh_cn" />
<fmt:formatDate value="<%=new Date()%>" type="both"	timeStyle="default" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" timeStyle="short" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" timeStyle="medium" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" timeStyle="long" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" timeStyle="full" />
<br />

    输出:
    2009-12-7 21:35:52
    2009-12-7 下午9:35
    2009-12-7 21:35:52
    2009-12-7 下午09时35分52秒
    2009-12-7 下午09时35分52秒 CST

 

    timeZone用来设定时区,时区的意思类似于酒店里大堂放的几个时钟,比如现在时间会有北京时间,东京时间,纽约时间,伦墩时间,
   取值范围为:EST, CST, MST, PST  

<fmt:setLocale value="zh_cn" />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" timeZone="EST" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" timeZone="CST" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" timeZone="MST" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" timeZone="PST" />
<br />

     输出结果:
    下午09时41分37秒 CST
    上午08时41分37秒 EST
    上午07时41分37秒 CST
    上午06时41分37秒 MST
    上午05时41分37秒 PST

 

    自定义格式:    

<fmt:setLocale value="zh_cn" />
<fmt:formatDate value="<%=new Date()%>" type="both" pattern="yyyy/MM/dd hh:mm:ss" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" pattern="yyyy-MM-dd HH:mm:ss" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" pattern="yyyy年MM月dd日 hh小时mm分钟ss秒" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="both" pattern="yy/MM/dd hh:mm:ss" />
<br />

     注意这里小时 hh表示12小时制, HH代表24小时制

 

七:<fmt:parseDate>

    将字符串类型的时间转换为日期类型.

    value 用来格式化的时间或日期的字符串
    type 指定格式化的是日期还是时间,或者两者都是取值范围:date,time,both
    pattern 自定义格式化样式
    dateStyle 日期的格式化样式
    timeStyle 时间的格式化样式
    timeZone 指定使用的时区
    var 存储格式化后的结果
    scope 指定存储的范围

 

   示例:
    <fmt:setLocale value="zh_cn" />
    <fmt:parseDate type="date" value="2008-4-5"/>
     输出: Sat Apr 05 00:00:00 CST 2008,
     这里已经将字符串” 2008-4-5”转换为了日期对象了.转换一定得注意,类似于2008-4-5这样的字符串,type必须为date,类似于12:34:56的字符串,type必须为time类似于2008-4-5 12:34:56这样的字符串,type必须为both还要注意浏览器的语言环境的设置,如果为zh_tw,那么字符串就必须得符合当地的标准,如为2009/12/7 下午 09:24:26就正确转换为日期对象,否则就会报错.

 

八:<fmt:setTimeZone>

    value 设定时区
    var 存储设定的时区
    scope 存储的范围

    value用来设定时区,可以是EST,CST,MST,PST等,如果有var属性,则将结果存储在所设定的范围之内.在属性范围内的页面都会使用该时区为默认时区.    

<fmt:setLocale value="zh_cn" />
<fmt:setTimeZone value="EST" />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" /><br />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" /><br />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" /><br />

   输出:
   上午09时25分12秒 EST
   上午09时25分12秒 EST
   上午09时25分12秒 EST
    此时区在该页面内都有效

 

九:<fmt:timeZone>

    用来暂时设置时区.   

<fmt:setLocale value="zh_cn" />
<fmt:timeZone value="EST">
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" />
<br />
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" />
<br />
</fmt:timeZone>
<fmt:formatDate value="<%=new Date()%>" type="time" timeStyle="full" />

      此标签的时区只是部分,在标签开始至标签结束内有效,其它地方无效,其它地方还是会使用默认时区.

 

分享到:
评论

相关推荐

    CSSACCP6.0 HTML 第6章 课堂练习 及答案

    在第6章的课堂练习中,可能涵盖了创建响应式设计的概念,这涉及到使用媒体查询`@media`来根据设备屏幕尺寸调整布局。此外,可能还涉及了HTML5的新特性,如`&lt;section&gt;`、`&lt;article&gt;`和`&lt;aside&gt;`等语义元素,它们有助...

    第6章 JSF标签 课件及示例程序

    在"第6章 JSF标签"中,我们可以预期学习以下核心概念: 1. **JSF组件**:JSF组件是UI元素的抽象,如按钮、文本字段、表格等。每个组件都有自己的属性和事件处理机制,可以通过JSF标签在页面上声明。 2. **JSF生命...

    commons第6章

    标题"commons第6章"可能指的是该库的一个特定部分或教程的第六章节,专注于某个主题或组件。由于没有具体的描述,我们将根据标签“源码”和“工具”来推测这一章节可能涵盖的内容。 源码分析是软件开发中的重要环节...

    第五章-电子标签..ppt

    标签内部存储着特定格式的电子数据,在实际应用中,通常将其附着在待识别物体的表面。数据通过无线方式由阅读器读取,并通过阅读器处理器进行信息解码和相关管理。因此,RFID是一种非接触式的自动识别技术,是传统...

    第6章HTML+CSS教学课件.ppt

    文本标签包括、、、、、等,用于设置网页的文本格式。 9. 图像标签 图像标签包括标签,用于插入图像。 10. 超链接标签 超链接标签包括标签,用于创建超链接、锚链接、功能性链接等。 11. 列表标签 列表标签...

    深圳大学C语言教程 第六章 循环结构

    深圳大学C语言教程第六章循环结构知识点总结 本章节主要讲解了C语言中的循环结构程序设计,包括while语句、do-while语句、for语句等循环结构的使用方法和特点,以及循环嵌套、break语句、continue语句、goto语句、...

    Office 2010自学视频教程下载第6章.zip

    在本压缩包“Office 2010自学视频教程下载第6章.zip”中,包含的是关于Microsoft Office 2010的第六章学习资源,特别适合那些希望通过自我学习提升Office 2010技能的用户。这个教程可能涵盖了Excel、Word、...

    办公自动化第6章.pptx

    《办公自动化第6章》主要讲解的是Excel 2003电子表格的制作与应用,这一章的内容旨在帮助用户掌握Excel 2003的基本操作,包括数据输入、计算、编辑、分析和呈现等多个方面。Excel 2003作为一款强大的电子表格软件,...

    06第六章金融资产.ppt共50页.pdf.zip

    【标签】"06第六章金融资产.ppt共50" 提供了章节信息,表明这可能是某个课程或系列讲座的一部分,具体来说是第六章。标签中的数字"50"可能是指PPT的总页数,这通常意味着深入的讲解和详细的分析。 【压缩包子文件的...

    Excel数据透视表入门到精通视频教程第05章 数据格式设置 5节.zip

    本视频教程“Excel数据透视表入门到精通”第五章专注于数据格式设置,这一章节将深入讲解如何优化数据透视表的外观和可读性,使其更符合业务需求和报告标准。以下是对这一章节内容的详细解读: 1. **数据透视表的...

    C语言程序设计第二章习题参考答案

    习题可能涉及格式化输入输出,如处理字符串、整数、浮点数等。 6. **数组**:一维数组和二维数组是C语言中常见的数据结构,用于存储一组相同类型的数据。习题可能要求理解数组索引、初始化、遍历以及数组作为函数...

    《精通MATLAB2011a》第六章

    《精通MATLAB2011a》第六章主要探讨的是数据可视化及其在MATLAB中的实现,这一章深入介绍了如何利用MATLAB进行数值绘图,包括离散数据和连续函数的可视化,以及图形的修饰和操作。 离散数据和离散函数的可视化是...

    struts课堂资料\第六章(国际化、验证框架)

    第六章的主题涵盖了两个关键概念:国际化(Internationalization, i18n)和验证框架(Validation Framework)。这两个特性对于开发出适应多语言环境并能确保用户输入数据质量的应用程序至关重要。 一、国际化(i18n...

    《Access数据库实用教程》第六章.ppt

    《Access数据库实用教程》第六章主要讲解了Access中的一个重要对象——报表的设计与功能。报表是Access用来输出格式化的数据信息的工具,它可以根据指定规则整合数据源,方便用户查看和分析信息。报表不仅可以包含...

    自己动手写搜索引擎第六章光盘

    在本资源中,"自己动手写搜索引擎第六章光盘"是一个关于搜索引擎开发的学习材料,源自罗刚所著的书籍。这个压缩包包含了书中的第六章代码内容,旨在帮助读者深入理解搜索引擎的工作原理,并通过实践来提升技能。下面...

    ACCP5.0html第三章家庭+上机作业

    2. **文本格式化**:学习如何使用`&lt;p&gt;`标签创建段落,`&lt;b&gt;`和`&lt;i&gt;`标签来粗体和斜体文本,以及`&lt;h1&gt;`到`&lt;h6&gt;`标题标签进行各级标题的设置。 3. **链接**:通过`&lt;a&gt;`标签,学生会学习如何创建内部和外部链接,引导...

    BootStrap实战 源码第3章

    8. **图片和媒体**:学习如何使用Bootstrap的图片响应式类使图片在不同设备上自适应,以及如何创建媒体对象(Media Object)来排列和格式化文本与图像。 9. **模态框**(Modal):掌握模态框的创建和使用,这是一种...

    谭浩强 C程序设计 课后答案第四章

    掌握如何正确使用格式化字符串来处理不同类型的数据是必备技能。 9. **编译与运行**:理解如何使用编译器(如GCC)将源代码编译为可执行文件,并运行程序以查看结果。 在【描述】中提到的"第四章课后答案源码及...

    win7+2010_第6章_素材.rar

    标题“win7+2010_第6章_素材.rar”表明这是一份与Windows 7操作系统和Microsoft Office 2010软件套装相关的学习资料,特别是第六章的内容。通常,这样的标题可能指的是一个教学资源包,包含了帮助用户理解和掌握相关...

    JSP网络编程从基础到实践实例代码第11章-第18章

    例如,使用fmt标签处理日期和数字格式化,使用sql标签执行数据库操作,或者使用fn标签进行字符串和集合的处理。 第17章可能涵盖了“JSP的EL(Expression Language)表达式”。EL是JSP 2.0引入的一种简洁的表达式...

Global site tag (gtag.js) - Google Analytics