fmt标准标签的使用.docx
《fmt标准标签的使用.docx》由会员分享,可在线阅读,更多相关《fmt标准标签的使用.docx(17页珍藏版)》请在冰豆网上搜索。
fmt标准标签的使用
一:
JSTL格式化标签又称为I18N标签库,主要用来编写国际化的WEB应用,使用此功能可以对一个特定的语言请求做出合适的处理。
例如:
中国内地用户将显示简体中文,台湾地区则显示繁体中文,使用I18N格式化标签库还可以格式化数字和日期,例如同一数字或日趋,在不同国家可能有不同的格式,使用I18N格式标签库可以将数字和日期格式为当地的格式。
二:
格式化标签
fromatNumber>
formatDate>
parseDate>
parseNumber>
setTimeZone>
timeZone>
国际化标签
setLocale>
requestEncoding>
bundle>
message>
param>
setBundle>
在JSP页面中要使用到格式化标签,需要引入下面的语句:
<%@tagliburi="prefix="fmt"%>
三:
formatNumber>
此标签会根据区域定制的方式将数字格式化成数字,货币,百分比。
此标签的属性:
value:
要格式化的数字
type:
按照什么类型格式化
pattern:
自定义格式化样式
currencyCode:
ISO-4721货币代码,只适用于按照货币格式化的数字
currencySymbol:
货币符号,如¥,只适用于按照货币格式化的数字
groupingUsed:
是否包含分隔符
maxIntegerDigits:
整数部分最多显示多少位
mixIntegerDigits:
整数部分最少显示多少位
maxFractionDigits:
小数部分最多显示多位位
minFractionDigits:
小数部分最少显示多位位
var:
存储格式化后的结果
scope:
存储的范围
示例1:
Java代码
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jsp
setLocalevalue="fr_fr"/>
formatNumbervalue="123456789.012"/>
setLocalevalue="zh_cn"/>
formatNumbervalue="123456789.012"/>
setLocalevalue="de_de"/>
formatNumbervalue="123456789.012"/>
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jsp
setLocalevalue="fr_fr"/>
formatNumbervalue="123456789.012"/>
setLocalevalue="zh_cn"/>
formatNumbervalue="123456789.012"/>
setLocalevalue="de_de"/>
formatNumbervalue="123456789.012"/>
注意:
如果要实现国际化,那么编码格式要设置为utf-8.
从程序运行效果可以看出,设定的区域不同,格式化数字的显示也会不同.
四:
type属性:
可以是数字(number),货币(currency),百分比(percent)
示例2:
Java代码
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jsp
setLocalevalue="zh_cn"/>
formatNumbervalue="0.3"type="number"/>
formatNumbervalue="0.3"type="currency"/>
formatNumbervalue="0.3"type="percent"/>
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jspsetLocalevalue="zh_cn"/>
formatNumbervalue="0.3"type="number"/>
formatNumbervalue="0.3"type="currency"/>
formatNumbervalue="0.3"type="percent"/>
currencyCode为货币代码,例如美元为USD,人民币为CNY等
currencySymbol为货币符号例如,人民币为¥,美元为$。
如果不指定区域,则会根据语言区域自动选择currencySymbol
示例3:
Java代码
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jspsetLocalevalue="zh_cn"/>
formatNumbervalue="0.3"type="currency"/>
setLocalevalue="en_Us"/>
formatNumbervalue="0.3"type="currency"/>
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jspsetLocalevalue="zh_cn"/>
formatNumbervalue="0.3"type="currency"/>
setLocalevalue="en_Us"/>
formatNumbervalue="0.3"type="currency"/>
currencySymbol属性还可以自定义要显示的头标识,但是一定得type="currency"才会生效,例如:
Java代码
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jspsetLocalevalue="zh_cn"/>
formatNumbervalue="0.3"type="currency"currencySymbol="#"/>
setLocalevalue="en_Us"/>
formatNumbervalue="0.3"type="currency"currencySymbol="#"/>
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="prefix="fmt"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
chapter4.jspsetLocalevalue="zh_cn"/>
formatNumbervalue="0.3"type="currency"currencySymbol="#"/>
setLocalevalue="en_Us"/>
formatNumbervalue="0.3"type="currency"currencySymbol="#"/>
自定义数字样式
formatNumbervalue="12.31"pattern=".0000"/>
formatNumbervalue="1234"pattern="###.##E0"/>
会显示:
12.3100
1.234E3
会四舍五入
var:
定义一个变量,存储格式化后的结果,scope指定变量存储的范围.用法和前面讲的标签一致.
五:
parseNumber>
此标签用来将字符串类型的数字,货币或百分比转换成数字类型,和formatNumber>标签的作用正好相反.
value:
要转换的字符串
type:
指定要转换的字符串为什么类型,可取值:
number,percent,currency
pattern:
自定义格式化样式
parseLocale:
指定区域来转换字符串
IntegerOnly:
转换后的数字是否只显示整数部分
var:
存储转换后的结果
scope:
存储的范围
示例1:
parseNumbervalue="500,800,200"/>
显示:
500800200
示例2:
parseNumbervalue="52%"type="percent"/>
显示:
0.52(52%在这里是一个字符串,type指定这个字符串是什么类型的值)
示例3:
parseNumbervalue="¥123"type="currency"/>
显示123,¥123在这里是一个字符串,type指定这个字符串是什么类型的值
示例4:
parseNumbervalue="123.333"type="number"/>
parseNumbervalue="123.333"type="number"integerOnly="true"/>
显示:
123.333
123
integerOnly确定是否只显示整数部分.
示例5:
parseNumbervalue="¥123.333"type="currency"parseLocale="zh_CN"/>
parseNumbervalue="$123.333"type="currency"parseLocale="en_US"/>
parseLocale="en_US"主要是配合当type="currency"时用的,
如果要转换货币的字符串类型为value="¥123.333",不设置语言环境的话,会取当前浏览器的默认设置,否则就要加上parseLocale="zh_CN",指定环境为中文环境
如果要转换货币的字符串类型为value="$123.333",不设置语言环境的话,会取当前浏览器的默认设置,如果默认为zh_cn的话,程序会报错的,否则就要加上parseLocale="en_US",指定环境为英文美国环境
六:
formatDate/>
此标签可以将日期格式化.
属性介绍:
value用来格式化的时间或日期
type指定格式化的是日期还是时间,或者两者都是取值范围:
date,time,both
pattern自定义格式化样式
dateStyle日期的格式化样式
timeStyle时间的格式化样式
timeZone指定使用的时区
var存储格式化后的结果
scope指定存储的范围
示例1:
Java代码
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"/>
setLocalevalue="zh_tw"/>
formatDatevalue="<%=newDate()%>"/>
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"/>
setLocalevalue="zh_tw"/>
formatDatevalue="<%=newDate()%>"/>大家可以看到大陆和台湾显示日期的格式是有区别的.
显示结果:
2009-12-7
2009/12/7
示例2:
Java代码
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"type="time"/>
setLocalevalue="zh_tw"/>
formatDatevalue="<%=newDate()%>"type="time"/>
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"type="time"/>
setLocalevalue="zh_tw"/>
formatDatevalue="<%=newDate()%>"type="time"/>显示结果:
14:
59:
28
下午02:
59:
28
type可取值及意义:
date格式化日期
time格式化时间
both格式化日期时间
示例3:
Java代码
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"type="both"/>
setLocalevalue="zh_tw"/>
formatDatevalue="<%=newDate()%>"type="both"/>
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"type="both"/>
setLocalevalue="zh_tw"/>
formatDatevalue="<%=newDate()%>"type="both"/>输出结果:
2009-12-721:
24:
26
2009/12/7下午09:
24:
26
dateStyle用来设定日期显示的样式,其值可以是default,short,medium,long,full,请看示例:
Java代码
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="default"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="short"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="medium"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="long"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="full"/>
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="default"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="short"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="medium"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="long"/>
formatDatevalue="<%=newDate()%>"type="both"dateStyle="full"/>
显示结果如下:
2009-12-721:
30:
49
09-12-721:
30:
49
2009-12-721:
30:
49
2009年12月7日21:
30:
49
2009年12月7日星期一21:
30:
49
可以看到dateStyle属性只对日期部分起作用,时间部分没有作用.
timeStyle用来显示时间部分的样式,取值范围同上
Java代码
setLocalevalue="zh_cn"/>
formatDatevalue="<%=newDate()%>"type="both"timeStyle="default"/>
formatDatevalue="<%=newDate()%>"type="both"timeStyle="short"/>
formatDat