zoukankan      html  css  js  c++  java
  • JSP标准标签库(JSTL)--国际化标签库 fmt

    JSTL中使用fmt.tld作为格式化标签库的定义文件

    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>标签 

    <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 = u6b22u8fce{0}u5149u4e34uff01

    读取资源文件:

    <%@ 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>
     
  • 相关阅读:
    android自定义通知栏遇到的问题
    写博客号的初衷
    模型转换遇关键字
    界面传值的四种方式
    button循环添加事件
    解析数据的步骤
    数组排序 (数组是有序容器,因此集合中只有数组才能排序。)
    集合遍历
    自定义view和自定义cell
    cell自适应高度
  • 原文地址:https://www.cnblogs.com/wujixing/p/5018724.html
Copyright © 2011-2022 走看看