005.JSTL之格式化FMT標簽

fmt標簽個人用的比較少抗碰,但是我還是在這里簡單的留一下筆記,也是算是學習了一下推汽!這樣方便你們課設的時候能用的上补疑,要學會進步的學習,不要停留歹撒!

不是不用,如果設計到數(shù)據(jù)的格式化,一定會使用!

引入該標簽庫的方法為:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

這里提供了很多的內(nèi)容莲组,我這里只是介紹關于數(shù)字和日期格式化的內(nèi)容:

  • formatNumber標簽
  • formatData標簽
  • parseNumber標簽
  • parseDate標簽
  • timeZone標簽
  • setTimeZone標簽

1. <fmt:formatNumber/> 標簽

作用:該標簽依據(jù)特定的區(qū)域將數(shù)字改變?yōu)椴煌母袷絹盹@示。

【語法】

<fmt:formatNumber value=”被格式化的數(shù)”
    [type=”number|currency|percent”]
    [pattern=”pattern”]
    [currencyCode=”code”]
    [currencySymbol=”symbol”]
    [groupingUsed=”true|false”]
    [maxIntergerDigits=”maxDigits”]
    [minIntergerDigits=”minDigits”]
    [maxFractionDigits=”maxDigits”]
    [minFractionDigits=”minDigits”]
    [var=”name”]
    [scope=page|request|session|application]
/>

<fmt:formatNumber/> 標簽參數(shù)說明:

名稱 類型 EL 類型 必須 默認值
value 要格式化的數(shù)據(jù) String
type 指定類型(單位暖夭、貨幣锹杈、百分比等)見附表A String number
pattern 格式化的數(shù)據(jù)樣式 String
currencyCode 貨幣單位代碼 String
cuttencySymbol 貨幣符號($撵孤、¥) String
groupingUsed 是否對整數(shù)部分進行分組如(9,999) boolean true
maxIntergerDigits 整數(shù)部分最對顯示多少位數(shù) int
minIntergerDigits 整數(shù)部分最少顯示多少位 int
maxFractionDigits 小數(shù)部分最多顯示多少位 int
minFractionDigits 小數(shù)部分最少顯示多少位 int
var 存儲格式化后的數(shù)據(jù) String
scope var的JSP范圍 String page

type屬性特別說明

類型 說明 示例
number 數(shù)字格式 0.8
currency 當?shù)刎泿?/td> ¥0.80
percent 百分比格式 80%

代碼示例: 實現(xiàn)了對數(shù)字的格式化竭望、貨幣的格式邪码、貨幣的格式化。使用 <fmt:formatNumber> 的各種屬性的設定咬清。

<table border=1 cellpadding="0" cellspacing="0" align="center">
            <tr align="center">
                <td width="100">類型</td>
                <td width="100">使用數(shù)據(jù)</td>
                <td width="100">結果</td>
                <td width="300">說明</td>
            </tr>
            <tr>
                <td>數(shù)字格式化</td>
                <td>108.75</td>
                <td>
                    <fmt:formatNumber type="number" pattern="###.#">108.75</fmt:formatNumber>
                </td>
                <td>
                    使用pattern可以定義顯示的樣式闭专。本例設定為###.#小數(shù)部分將使用四舍五入法。
                </td>
            </tr>
            <tr>

                <td>數(shù)字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number" pattern="#.####E0">9557</fmt:formatNumber>
                </td>
                <td>
                    使用科學計數(shù)法枫振。
                </td>
            </tr>
            <tr>
                <td>數(shù)字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number">9557</fmt:formatNumber>
                </td>
                <td>
                    使用默認分組喻圃。
                </td>
            </tr>

            <tr>
                <td>數(shù)字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number" groupingUsed="false">9557</fmt:formatNumber>
                </td>
                <td>
                    不使用分組。
                </td>
            </tr>
            <tr>
                <td>數(shù)字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number" maxIntegerDigits="3">9557</fmt:formatNumber>
                </td>
                <td>
                    使用位數(shù)限定粪滤,根據(jù)指定的位數(shù)顯示斧拍,其他數(shù)字忽略。例如:9不被顯示杖小。
                </td>
            </tr>
            <tr>
                <td>百分比格式化</td>
                <td>0.98</td>
                <td>
                    <fmt:formatNumber type="percent">0.98</fmt:formatNumber>
                </td>
                <td>
                    用百分比形式顯示一個數(shù)據(jù)肆汹。
                </td>
            </tr>
            <tr>
                <td>貨幣格式化</td>
                <td>188.88</td>
                <td>
                    <fmt:formatNumber type="currency">188.8</fmt:formatNumber>
                </td>
                <td>
                    將一個數(shù)據(jù)轉化為貨幣形式輸出。
                </td>
            </tr>

            <tr>
                <td>存儲數(shù)據(jù)</td>
                <td>188.88</td>
                <td>
                    <fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber>
                    ${money}
                </td>
                <td>
                    存儲的money的值為${money}
                </td>
            </tr>
        </table>

說明:
(1) 從應用角度可以把屬性分為三類:數(shù)字格式化予权、貨幣格式化昂勉、百分比格式化。使用type指定類型扫腺。
(2) 應用于數(shù)字格式化的屬性有:partten屬性岗照、maxIntegerDigits屬性、minIntegerDigits屬性笆环、maxFractionDigits屬性和minFactionDigits屬性攒至。其中partten屬性在設定格式化樣式時會比較準確如:四舍五入、科學計數(shù)法的使用躁劣。而使用maIntegerDirgits等屬性時迫吐,只把設定位數(shù)以外的數(shù)字舍去。
(3) 貨幣格式化可以使用數(shù)字格式化的所有屬性账忘。如果有必要建議使用partten屬性志膀。currencyCode屬性和currencySymbol只用于貨幣格式化。
(4) 百分比格式化使用到的屬性為type屬性鳖擒、partten屬性溉浙,設定type屬性的類型為percent即可。
(5) 使用var屬性時蒋荚,會將格式化后的值存在JSP的某個范圍內(nèi)(一個String類型的字符串包括符號等)放航。<fmt:forNumber>將不再輸出格式化后的值可以使用EL表達式輸出。
(6) 通用屬性:type屬性圆裕、partten屬性广鳍、var屬性和scope屬性。

2.<fmt:parseNumber>標簽

作用: 將格式化后的數(shù)字吓妆、貨幣赊时、百分比都轉化為數(shù)字類型。

語法:

<fmt:parseNumber value="number"
         [type=”number|currency|percent”]
         [pattern=”pattern”]
         [parseLocale=”locale”]
         [intergerOnly=”true|false”]
         [scope=”page|request|session|application”]
/>

<fmt:parseNumber> 標簽參數(shù)說明:

名稱 說明 EL 類型 必須 默認
value 被解析的字符串 String
type 指定單位(數(shù)字行拢、貨幣祖秒、百分比) String number
pattern 格式樣式 String
parseLocale 用來替代默認區(qū)域的設定 StString/java.util.Locale 默認本地樣式
var 存儲已經(jīng)格式化的數(shù)據(jù) String
scope var變量的作用域 String page

注意: <fmt:parseNumber>可以看作是<fmt:formatNumber>的逆運算
相應的參數(shù)和類型的配置和使用 <fmt:formatNumber> 格式化時相同。

代碼示例: 實現(xiàn)了從字符串中提取數(shù)據(jù)舟奠,并用合適的數(shù)據(jù)類型進行存儲(浮點性竭缝、整型等)≌犹保可以對轉換后的數(shù)據(jù)進行加法運算

<!-- 準備的數(shù)據(jù)為 -->
        <fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber>
            <ul>
                <li>
                    格式化后的數(shù)據(jù)為:${money}
                </li>
                <fmt:parseNumber var="money" type="currency">${money}</fmt:parseNumber>
                <li>
                    解析格式化后的數(shù)據(jù)為:${money}
                </li>
                <li>
                    解析可以對格式化的后的數(shù)據(jù)進行運算:${money+200}
                </li>
                <li>
                    解析對百分比進行格式化98%為:
                    <fmt:parseNumber type="percent">98%</fmt:parseNumber>
                </li>
            </ul>

說明:
(1) 首先使用<fmt:formatNumber>將188.8轉換為字符串¥188.8并在page范圍內(nèi)存儲一個String類型的變量抬纸,變量名為money。
(2) 使用<fmt:parseNumber>將¥188.8轉化為浮點型的數(shù)據(jù)188.8并賦值為變量money耿戚,則變量money轉變?yōu)橐粋€浮點型的值188.8湿故,對188.8進行加運算。
(3) 直接對一個百分比數(shù)98%進行轉化膜蛔。

3. <fmt:formatDate> 標簽[重要]

作用: 該標簽主要用來格式化日期和時間

語法:

<fmt:formatDate value=”date” 
       [type=”time|date|both”]
       [pattern=”pattern”]
       [dateStyle=”default|short|medium|long|full”]
       [timeStyle=”default|short|medium|long|full”]
       [timeZone=”timeZone”]
       [var=”name”]
       [scope=”page|request|session|application”]
/>

<fmt:formatDate> 標簽參數(shù)說明:

屬性名 說明 EL 類型 必須 默認值
value 將要格式化的日期對象 Java.util.Date
type 顯示的部分(日期坛猪、時間或者兩者)附錄表B String date
partten 格式化的樣式。 String
dateStyle 設定日期的顯示方式 String default
timeStyle 設定時間的顯示方式 String default
timeZone 設定使用的時區(qū) String 當?shù)厮脮r區(qū)
var 存儲已格式化的日期或時間 String
scope 指定var存儲的JSP范圍 String

type屬性參數(shù)說明:

參數(shù)名 說明
time 只顯示時間
date 只顯示日期
both 顯示日期和時間

代碼示例: 實現(xiàn)了對日期的格式化皂股,使用了type墅茉、dateStyle、timeStyle等屬性呜呐。

<%
pageContext.setAttribute("date",new Date());
%>

<fmt:formatDate value="${date}"></fmt:formatDate>
<br>

<fmt:formatDate value="${date}" type="both"></fmt:formatDate>
<br>

<fmt:formatDate value="${date}" type="both" dateStyle="default"
timeStyle="default"></fmt:formatDate>
<br>

<fmt:formatDate value="${date}" type="both" dateStyle="short"
timeStyle="short"></fmt:formatDate>
<br>

<fmt:formatDate value="${date}" type="both" dateStyle="long"
timeStyle="long"></fmt:formatDate>
<br>

<fmt:formatDate value="${date}" type="both" dateStyle="full"
timeStyle="full"></fmt:formatDate>
<br>

<fmt:formatDate value="${date}" type="both" dateStyle="full"
timeStyle="full"></fmt:formatDate>
<br>

(1) 對日期對象進行格式化時${date}是一個日期對象就斤,如果給value設的值為String時程序會報錯。
(2) 設置type為both時卵史,將顯示日期和時間战转,同時示例中依次改變dateStyle和timeStyle的值作為比較。

4. <fmt:parseDate> 標簽[重點]

作用:標簽主要將字符串類型的時間或日期轉化為時間或日期對象以躯。

<fmt:parseDate 
         [type=”time|date|both”]
         [pattern=”pattern”]
         [parseLocale=”locale”]
         [dateStyle=”default|short|medium|long|full”]
         [timeStyle=”default|short|medium|long|full”]
         [timeZone=”timezone”]
         [var=”name”]
         [scope=”page|request|session|application”]
> 
Date
</fmt:parseDate>

<fmt:parseDate> 標簽參數(shù)說明:

屬性名 說明 EL 類型 必須 默認值
value 將要格式化的日期時間 String
type 字符串的類型(日期槐秧、時間或全部) String date
pattern 字符串使用的時間樣式 String
parseLocale 取代默認地區(qū)設定 String 默認地區(qū)
dateStyle 字符串使用的日期顯示方式 String default
timeStyle 字符串使用的時間顯示格式 String default
timeZone 使用的時區(qū) String 當?shù)貐^(qū)時
var 使用var定義的名字保存對象 String
scope var的JSP范圍 String page

代碼示例:

  • 使用了<fmt:formatDate>把一個日期對象格式化成一個日期的字符串,并把該字符串以參數(shù)名為a存儲page范圍內(nèi)忧设。
  • 使用<fmt:parseDate>方法把a的值(字符串)格式化成一個Date并以參數(shù)名為b存儲在page范圍內(nèi)刁标。
  • 使用Java腳本證明生成的b為對象。

<%
pageContext.setAttribute("date", new Date());
%>

<fmt:formatDate value="${date}" var="a" type="both" dateStyle="full"
timeStyle="full"></fmt:formatDate>

<fmt:parseDate var="b" type="both" dateStyle="full" timeStyle="full">
${a}
</fmt:parseDate>
<%
out.println(pageContext.getAttribute("b").toString());
out.println("<br>");
out.println(pageContext.getAttribute("b").hashCode());
%>

(1) 使用 <fmt:formatDate> 把日期對象格式化成字符串址晕。
(2) 使用 <fmt:parseDate> 把字符串對象轉化為日期對象膀懈,注意同(1)中的參數(shù)對比,可以發(fā)現(xiàn)兩者是一個互逆的過程谨垃。
(3) 使用Java腳本進行測試Date對象的toString()方法可以輸出時間字符串启搂。hashCode()可以得到一個對象的hashCode硼控。該方法只能應用于對象,因此可以證明得到的是一個日期對象胳赌。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牢撼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疑苫,更是在濱河造成了極大的恐慌熏版,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捍掺,死亡現(xiàn)場離奇詭異撼短,居然都是意外死亡,警方通過查閱死者的電腦和手機挺勿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門曲横,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人满钟,你說我怎么就攤上這事胜榔。” “怎么了湃番?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵夭织,是天一觀的道長。 經(jīng)常有香客問我吠撮,道長尊惰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任泥兰,我火速辦了婚禮弄屡,結果婚禮上,老公的妹妹穿的比我還像新娘鞋诗。我一直安慰自己膀捷,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布削彬。 她就那樣靜靜地躺著全庸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪融痛。 梳的紋絲不亂的頭發(fā)上壶笼,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音雁刷,去河邊找鬼覆劈。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的责语。 我是一名探鬼主播炮障,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鹦筹!你這毒婦竟也來了铝阐?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤铐拐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后练对,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遍蟋,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年螟凭,在試婚紗的時候發(fā)現(xiàn)自己被綠了虚青。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡螺男,死狀恐怖棒厘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情下隧,我是刑警寧澤奢人,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站淆院,受9級特大地震影響何乎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜土辩,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一支救、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拷淘,春花似錦各墨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至逝嚎,卻和暖如春扁瓢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背补君。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工引几, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓伟桅,卻偏偏與公主長得像敞掘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子楣铁,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理玖雁,服務發(fā)現(xiàn),斷路器盖腕,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • HTML標簽解釋大全 一赫冬、HTML標記 標簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,242評論 1 41
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向對象的用電信息數(shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,967評論 6 13
  • 心里想什么自己都說不清楚,所有的感情都是大腦在控制的溃列。很多人都壓力大說心累劲厌,其實真正讓自己累的是一直不停思考的大腦...
    妮蘭致青閱讀 308評論 0 0
  • 莒南: 中國花生之鄉(xiāng)补鼻、中國板栗之鄉(xiāng)、中國茶葉之鄉(xiāng)雅任、中國草莓之鄉(xiāng)风范、中國柳編藝術之鄉(xiāng)、中國石雕藝術之鄉(xiāng)沪么、中國磨料磨具之...
    老區(qū)優(yōu)品閱讀 467評論 0 0