JSP标准标签库(JSTL)--国际化标签库 fmt
2015-12-04 11:07
621 查看
JSTL中使用fmt.tld作为格式化标签库的定义文件
<fmt:setLocale>标签
<fmt:setLocale value="区域编码" [variant="浏览器"] [scope="[page | request | session | application]"]/>
<fmt:setLocale>标签的属性 :
<fmt:requestEncoding>标签
<fmt:requestEncoding [value="字符集"]/>
和request.setCharacterEncoding()一样的作用
<fmt:message>、<fmt:param>、<fmt:bundle>、<fmt:setBundle>读取资源文件
<fmt:bundle basename="资源文件名称" [prefix="前置标记"]>
标签体内容
</fmt:bundle>
当通过<fmt:bundle>标签指定好了资源文件名称后,就可以使用<fmt:message>标签按照key读取value,语法如下:
<fmt:message key="资源文件的指定key" [bundle="资源文件名称"] [var="存储内容的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:message key="资源文件的指定key" [bundle="资源文件名称"] [var="存储内容的属性名称"] [scope="[page | request | session | application]"]>
<fmt:param value="设置占位符内容"/>
</fmt:message>
资源文件Message.properties:
读取资源文件:
可以用<fmt:setBundle> 代替上述多处<fmt:bundle basename="Message">:
<fmt:bundle>:设置单个资源名称
<fmt:setBundle>:设置全局 的资源名称
实际上也可以根据不同的资源文件进行划分,如果实现国际化操作,肯定有很多的资源文件:Message_en_US.properties,Message_zh_CN.properties
可以在代码<fmt:setBundle basename="Message" var="msg"/>前加入
<fmt:setLocale value="zh_CH">
数字化格式化标签<fmt:formatNumber>
<fmt:formatNumber value="数字" [type="[number | currency | percent]"] [pattern="格式化格式"] [currencyCode="货币的ISO代码"] [currencySymbol="货币符号"] [groupingUsed="[true | false]"] [maxIntegerDigits="整数位的最大显示长度"] [minIntegerDigits="整数位的最小显示长度"] [maxFractionDigits="小数位的最大显示长度"] [minFractionDigits="小数位的最小显示长度"] [var="格式化数字的保存属性"] [scope="[page | request | session | application]"]/>
<fmt:formatNumber [type="[number | currency | percent]"] [pattern="格式化格式"] [currencyCode="货币的ISO代码"] [currencySymbol="货币符号"] [groupingUsed="[true | false]"] [maxIntegerDigits="整数位的最大显示长度"] [minIntegerDigits="整数位的最小显示长度"] [maxFractionDigits="小数位的最大显示长度"] [minFractionDigits="小数位的最小显示长度"] [var="格式化数字的保存属性"] [scope="[page | request | session | application]"]> 要格式化的数字</fmt:formatNumber>
<fmt:formatNumber>标签的属性 :
数字反格式化:<fmt:parseNumber>
<fmt:parseNumber value="格式化好的数字" [type="[number | currency | percent]"] [pattern="格式化样式"] [parseLocale="区域编码"] [integerOnly="[true | false]"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:parseNumber value="格式化好的数字" [type="[number | currency | percent]"] [pattern="格式化样式"] [parseLocale="区域编码"] [integerOnly="[true | false]"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]>
已格式化好的数字
</fmt:parseNumber>
<fmt:parseNumber>标签的属性 :
日期格式化:<fmt:formatDate>
<fmt:formatDate value="date" [type="[time | date | both]"] [pattern="格式化样式"] [dateStyle="[default | short | medium | long | full]"] [timeStyle="[default | short | medium | long | full]"] [timeZone="时区"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:formatDate>标签的属性 :
日期的反格式化:<fmt:parseDate>
<fmt:parseDate value="date" [type="[time | date | both]"] [pattern="格式化样式"] [dateStyle="[default | short | medium | long | full]"] [timeStyle="[default | short | medium | long | full]"] [timeZone="时区"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:parseDate>标签的属性 :
例子:
设置时区:<fmt:timeZone>
<fmt:timeZone value="设置的时区">
标签体内容
</fmt:timeZone>
No. | 功能分类 | 标签名称 | 描述 |
1 | 国际化标签 | <fmt:setLocale> | 设置一个全局的地区代码 |
2 | <fmt:requestEncoding> | 设置统一的请求编码 | |
信息显示标签 | <fmt:bundle> | 设置临时的要读取资源文件的名称 | |
<fmt:message> | 通过key取得value,通过<fmt:param>向动态文本中设置内容 | ||
<fmt:setBundle> | 设置一个全局的要读取资源文件的名称 | ||
数字及日期格式化 | <fmt:formatNumber> | 格式化数字 | |
<fmt:parseNumber> | 反格式化数字 | ||
<fmt:formatDate> | 格式化日期,将日期变为字符串 | ||
<fmt:parseDate> | 反格式化日期,将字符串变为日期 | ||
<fmt:setTimeZone> | 设置一个全局的时区 | ||
<fmt:timeZone> | 设置一个临时的时区 |
<fmt:setLocale value="区域编码" [variant="浏览器"] [scope="[page | request | session | application]"]/>
<fmt:setLocale>标签的属性 :
No. | 属性名称 | EL支持 | 描述 |
1 | value | √ | 设置地区的编码,表示一个java.util.Locale类 |
2 | variant | √ | 如果要访问在同一个WEB容器下的其他资源时设置,必须以“/”开头 |
3 | scope | × | 地区设置的范围 |
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*"%> <%@ taglib prefix="fmt" uri="http://www.mldn.cn/jst/fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <% pageContext.setAttribute("date",new Date()) ; %> <h3>中文日期显示: <fmt:setLocale value="zh_CN"/> <fmt:formatDate value="${date}"/> </h3> <h3>英文日期显示: <fmt:setLocale value="en_US"/> <fmt:formatDate value="${date}"/> </h3> </body> </html>
<fmt:requestEncoding>标签
<fmt:requestEncoding [value="字符集"]/>
和request.setCharacterEncoding()一样的作用
<fmt:message>、<fmt:param>、<fmt:bundle>、<fmt:setBundle>读取资源文件
<fmt:bundle basename="资源文件名称" [prefix="前置标记"]>
标签体内容
</fmt:bundle>
当通过<fmt:bundle>标签指定好了资源文件名称后,就可以使用<fmt:message>标签按照key读取value,语法如下:
<fmt:message key="资源文件的指定key" [bundle="资源文件名称"] [var="存储内容的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:message key="资源文件的指定key" [bundle="资源文件名称"] [var="存储内容的属性名称"] [scope="[page | request | session | application]"]>
<fmt:param value="设置占位符内容"/>
</fmt:message>
资源文件Message.properties:
name = LiXingHua info = \u6b22\u8fce{0}\u5149\u4e34\uff01
读取资源文件:
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*"%> <%@ taglib prefix="fmt" uri="http://www.mldn.cn/jst/fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <fmt:bundle basename="Message"> <fmt:message key="name" var="nameref"/> </fmt:bundle> <h3>姓名:${nameref}</h3> <fmt:bundle basename="Message"> <fmt:message key="info" var="inforef"> <fmt:param value="MLDN"/> </fmt:message> </fmt:bundle> <h3>信息:${inforef}</h3> </body> </html>
可以用<fmt:setBundle> 代替上述多处<fmt:bundle basename="Message">:
<fmt:bundle>:设置单个资源名称
<fmt:setBundle>:设置全局 的资源名称
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ taglib uri="http://www.mldn.cn/jstl/fmt" prefix="fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <fmt:setBundle basename="Message" var="msg"/> <fmt:message key="name" var="nameref" bundle="${msg}"/> <h3>姓名:${nameref}</h3> <fmt:message key="info" var="inforef" bundle="${msg}"> <fmt:param value="MLDN"/> </fmt:message> <h3>信息:${inforef}</h3> </body> </html>
实际上也可以根据不同的资源文件进行划分,如果实现国际化操作,肯定有很多的资源文件:Message_en_US.properties,Message_zh_CN.properties
可以在代码<fmt:setBundle basename="Message" var="msg"/>前加入
<fmt:setLocale value="zh_CH">
数字化格式化标签<fmt:formatNumber>
<fmt:formatNumber value="数字" [type="[number | currency | percent]"] [pattern="格式化格式"] [currencyCode="货币的ISO代码"] [currencySymbol="货币符号"] [groupingUsed="[true | false]"] [maxIntegerDigits="整数位的最大显示长度"] [minIntegerDigits="整数位的最小显示长度"] [maxFractionDigits="小数位的最大显示长度"] [minFractionDigits="小数位的最小显示长度"] [var="格式化数字的保存属性"] [scope="[page | request | session | application]"]/>
<fmt:formatNumber [type="[number | currency | percent]"] [pattern="格式化格式"] [currencyCode="货币的ISO代码"] [currencySymbol="货币符号"] [groupingUsed="[true | false]"] [maxIntegerDigits="整数位的最大显示长度"] [minIntegerDigits="整数位的最小显示长度"] [maxFractionDigits="小数位的最大显示长度"] [minFractionDigits="小数位的最小显示长度"] [var="格式化数字的保存属性"] [scope="[page | request | session | application]"]> 要格式化的数字</fmt:formatNumber>
<fmt:formatNumber>标签的属性 :
No. | 属性名称 | EL支持 | 描述 |
1 | value | √ | 要格式化的数字 |
2 | type | √ | 指定格式化的形式,例如:数字、货币、百分比,默认是数字 |
3 | pattern | √ | 要格式化数字的格式 |
4 | currencyCode | √ | 货币编码(ISO 4217编码),例如:人民币(CNY)、美元(USD) |
5 | currencySymbol | √ | 显示的货币符号,例如:¥或$ |
6 | groupingUsed | √ | 是否在数字中加“,” |
7 | maxIntegerDigits | √ | 可以显示的最大整数位 |
8 | minIntegerDigits | √ | 可以显示的最小整数位 |
9 | maxFractionDigits | √ | 可以显示的最大小数位 |
10 | minFractionDigits | √ | 可以显示的最小小数位 |
11 | var | × | 保存已格式化完的数字的属性名称 |
12 | scope | × | var变量的保存范围,默认是page范围 |
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*"%> <%@ taglib prefix="fmt" uri="http://www.mldn.cn/jst/fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <fmt:formatNumber value="351989.356789" maxIntegerDigits="7" maxFractionDigits="3" groupingUsed="true" var="num"/> <h3>格式化数字:${num}</h3> <fmt:formatNumber value="351989.356789" pattern="##.###E0" var="num"/> <h3>科学计数法:${num}</h3> </body> </html>
数字反格式化:<fmt:parseNumber>
<fmt:parseNumber value="格式化好的数字" [type="[number | currency | percent]"] [pattern="格式化样式"] [parseLocale="区域编码"] [integerOnly="[true | false]"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:parseNumber value="格式化好的数字" [type="[number | currency | percent]"] [pattern="格式化样式"] [parseLocale="区域编码"] [integerOnly="[true | false]"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]>
已格式化好的数字
</fmt:parseNumber>
<fmt:parseNumber>标签的属性 :
No. | 属性名称 | EL支持 | 描述 |
1 | value | √ | 要格式化的数字 |
2 | type | √ | 指定格式化的形式,例如:数字、货币、百分比,默认是数字 |
3 | pattern | √ | 要格式化数字的格式 |
4 | parseLocale | √ | 设置文字的区域编码 |
5 | integerOnly | √ | 是否只显示整数部分 |
6 | var | × | 保存已格式化完的数字的属性名称 |
7 | scope | × | var变量的保存范围,默认是page范围 |
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*"%> <%@ taglib prefix="fmt" uri="http://www.mldn.cn/jst/fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <fmt:parseNumber value="3,531,989.357" var="num"/> <h3>反格式化数字:${num}</h3> <fmt:parseNumber value="3.532E6" pattern="##.###E0" var="num"/> <h3>反科学计数法:${num}</h3> <fmt:parseNumber value="3.5%" pattern="00%" var="num"/> <h3>反百分比:${num}</h3> </body> </html>
日期格式化:<fmt:formatDate>
<fmt:formatDate value="date" [type="[time | date | both]"] [pattern="格式化样式"] [dateStyle="[default | short | medium | long | full]"] [timeStyle="[default | short | medium | long | full]"] [timeZone="时区"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:formatDate>标签的属性 :
No. | 属性名称 | EL支持 | 描述 |
1 | value | √ | 要格式化的日期时间 |
2 | type | √ | 指定格式化的形式,例如:日期、时间、日期时间,默认是date |
3 | pattern | √ | 要格式化数字的格式 |
4 | dateStyle | √ | 设置日期的显示格式,默认是default |
5 | timeStyle | √ | 设置时间的显示格式,默认是default |
6 | timeZone | √ | 设置时区 |
7 | var | × | 存储结果的属性名称 |
8 | scope | × | var变量的保存范围,默认是page范围 |
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*"%> <%@ taglib prefix="fmt" uri="http://www.mldn.cn/jst/fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <% pageContext.setAttribute("dateref" , new Date()) ; %> <fmt:formatDate value="${dateref}" type="both" dateStyle="default" timeStyle="default" var="date"/> <h3>default显示日期时间:${date}</h3> <fmt:formatDate value="${dateref}" type="both" dateStyle="short" timeStyle="short" var="date"/> <h3>short显示日期时间:${date}</h3> <fmt:formatDate value="${dateref}" type="both" dateStyle="medium" timeStyle="medium" var="date"/> <h3>medium显示日期时间:${date}</h3> <fmt:formatDate value="${dateref}" type="both" dateStyle="long" timeStyle="long" var="date"/> <h3>long显示日期时间:${date}</h3> <fmt:formatDate value="${dateref}" type="both" dateStyle="full" timeStyle="full" var="date"/> <h3>full显示日期时间:${date}</h3> <fmt:formatDate value="${dateref}" type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" var="date"/> <h3>自定义格式显示日期时间:${date}</h3> </body> </html>
日期的反格式化:<fmt:parseDate>
<fmt:parseDate value="date" [type="[time | date | both]"] [pattern="格式化样式"] [dateStyle="[default | short | medium | long | full]"] [timeStyle="[default | short | medium | long | full]"] [timeZone="时区"] [var="存储结果的属性名称"] [scope="[page | request | session | application]"]/>
<fmt:parseDate>标签的属性 :
No. | 属性名称 | EL支持 | 描述 |
1 | value | √ | 要转换成日期的字符串 |
2 | type | √ | 指定格式化的形式,例如:日期、时间、日期时间,默认是date |
3 | pattern | √ | 要格式化数字的格式 |
4 | dateStyle | √ | 设置日期的显示格式,默认是default |
5 | timeStyle | √ | 设置时间的显示格式,默认是default |
6 | timeZone | √ | 设置时区 |
7 | var | × | 存储结果的属性名称 |
8 | scope | × | var变量的保存范围,默认是page范围 |
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*"%> <%@ taglib prefix="fmt" uri="http://www.mldn.cn/jst/fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <fmt:parseDate value="2009年7月5日 星期日 上午11时47分45秒 CST" type="both" dateStyle="full" timeStyle="full" var="date"/> <h3>字符串变为日期:${date}</h3> <fmt:parseDate value="2009年07月05日 11时47分45秒062毫秒" type="both" pattern="yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" var="date"/> <h3>字符串变为日期:${date}</h3> </body> </html>
设置时区:<fmt:timeZone>
<fmt:timeZone value="设置的时区">
标签体内容
</fmt:timeZone>
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*"%> <%@ taglib prefix="fmt" uri="http://www.mldn.cn/jst/fmt"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <% pageContext.setAttribute("dateref",new java.util.Date()) ; %> <fmt:timeZone value="HST"> <fmt:formatDate value="${dateref}" type="both" dateStyle="full" timeStyle="full" var="date"/> </fmt:timeZone> <h3>FULL显示日期时间:${date}</h3> </body> </html>
相关文章推荐
- 关于jsp页面是放在webroot目录下和web-inf下优缺点
- Day 19: EmberJS 入门指南
- Myeclipse开发JSP 代码和配置文件位置
- javascript里面的数组,json对象,动态添加,修改,删除示例
- js图片大小限制,设置
- Day 8: Harp.JS——现代静态web服务器
- Day 7: GruntJS 在线重载 提升生产率至新境界
- js省市二级下拉联动
- Day 5: GruntJS——重复乏味的工作总会有人做(反正我不做)
- 早该知道的 7 个JavaScript 技巧[转]
- JS运动--分享到空间代码样式
- javascript模板引擎——artTemplate
- 原生js版ajax请求
- ExtJs 告警弹窗
- js设计模式学习一(单例模式)
- JavaScript截取指定长度字符串点击可以展开全部代码
- #学习笔记#(5)表格奇偶行颜色样式JavaScript+CSS+HTML
- JavaScript:有符号整数与无符号整数相互转化
- 在线js调试工具JSbin、jsFiddle
- js:深闭包(范围:上)