首页 > Web开发 > 详细

[应用篇]JSTL之fmt标签日期和数字格式化

时间:2015-04-19 16:06:44      阅读:422      评论:0      收藏:0      [点我收藏+]

  fmt标签个人用的比较少,但是我还是在这里简单的留一下笔记,也是算是学习了一下!这样方便你们课设的时候能用的上,要学会进步的学习,不要停留!

  引入该标签库的方法为:  

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

  这里提供了很多的内容,我这里只是介绍关于数字和日期格式化的内容

  formatNumber标签、formatData标签、parseNumber标签、parseDate标签、timeZone标签、setTimeZone标签

  1.<frm:formatNumber/>标签

  该标签依据特定的区域将数字改变为不同的格式来显示。

  

【语法1】:
<frm:formatNumber value=”被格式化的数”
    [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]
/>
还有一种是对标签哟!

1.<fmt:formatNumber>标签参数说明:

名称 类型 EL 类型 必须 默认值
value 要格式化的数据 是 String 是 无
type 指定类型(单位、货币、百分比等)见附表A 是  String 否 number
pattern 格式化的数据样式 是 String 否 无
currencyCode 货币单位代码 是 String 否 无
cuttencySymbol 货币符号($、¥) 是 String 否 无
groupingUsed 是否对整数部分进行分组如(9,999) 是 boolean 是 true
maxIntergerDigits 整数部分最对显示多少位数 是 int 否 无
minIntergerDigits 整数部分最少显示多少位 是 int 否 无
maxFractionDigits 小数部分最多显示多少位 是 int 否 无
minFractionDigits 小数部分最少显示多少位 是 int 否 无
var 存储格式化后的数据 否 String 否 无
scope var的JSP范围 否 String 否 page

附表A,关于type的属性值介绍

类型 说明 示例
number 数字格式 0.8
currency 当地货币 ¥0.80
percent 百分比格式 80%

 

什么东西,都需要代码才能看到真相,所以喽,我们写一下代码,

LOOK:实现了对数字的格式化、货币的格式、货币的格式化。使用<frm:formatNumber>的各种属性的设定。

<table border=1 cellpadding="0" cellspacing="0" align="center">
            <tr align="center">
                <td width="100">类型</td>
                <td width="100">使用数据</td>
                <td width="100">结果</td>
                <td width="300">说明</td>
            </tr>
            <tr>
                <td>数字格式化</td>
                <td>108.75</td>
                <td>
                    <fmt:formatNumber type="number" pattern="###.#">108.75</fmt:formatNumber>
                </td>
                <td>
                    使用pattern可以定义显示的样式。本例设定为###.#小数部分将使用四舍五入法。
                </td>
            </tr>
            <tr>

                <td>数字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number" pattern="#.####E0">9557</fmt:formatNumber>
                </td>
                <td>
                    使用科学计数法。
                </td>
            </tr>
            <tr>
                <td>数字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number">9557</fmt:formatNumber>
                </td>
                <td>
                    使用默认分组。
                </td>
            </tr>

            <tr>
                <td>数字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number" groupingUsed="false">9557</fmt:formatNumber>
                </td>
                <td>
                    不使用分组。
                </td>
            </tr>
            <tr>
                <td>数字格式化</td>
                <td>9557</td>
                <td>
                    <fmt:formatNumber type="number" maxIntegerDigits="3">9557</fmt:formatNumber>
                </td>
                <td>
                    使用位数限定,根据指定的位数显示,其他数字忽略。例如:9不被显示。
                </td>
            </tr>
            <tr>
                <td>百分比格式化</td>
                <td>0.98</td>
                <td>
                    <fmt:formatNumber type="percent">0.98</fmt:formatNumber>
                </td>
                <td>
                    用百分比形式显示一个数据。
                </td>
            </tr>
            <tr>
                <td>货币格式化</td>
                <td>188.88</td>
                <td>
                    <fmt:formatNumber type="currency">188.8</fmt:formatNumber>
                </td>
                <td>
                    将一个数据转化为货币形式输出。
                </td>
            </tr>

            <tr>
                <td>存储数据</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)从应用角度可以把属性分为三类:数字格式化、货币格式化、百分比格式化。使用type指定类型。
(2)应用于数字格式化的属性有:partten属性、maxIntegerDigits属性、minIntegerDigits属性、maxFractionDigits属性和minFactionDigits属性。其中partten属性在设定格式化样式时会比较准确如:四舍五入、科学计数法的使用。而使用maIntegerDirgits等属性时,只把设定位数以外的数字舍去。
(3)货币格式化可以使用数字格式化的所有属性。如果有必要建议使用partten属性。currencyCode属性和currencySymbol只用于货币格式化。
(4)百分比格式化使用到的属性为type属性、partten属性,设定type属性的类型为percent即可。
(5)使用var属性时,会将格式化后的值存在JSP的某个范围内(一个String类型的字符串包括符号等)。<frm:forNumber>将不再输出格式化后的值可以使用EL表达式输出。
(6)通用属性:type属性、partten属性、var属性和scope属性。
--%>

 

2.<frm:parseNumber>标签

将格式化后的数字、货币、百分比都转化为数字类型。
【语法1】:
<fmt:parseNumber value="number"       
[type
=”number|currency|percent”] [pattern=”pattern”] [parseLocale=”locale”] [intergerOnly=”true|false”] [scope=”page|request|session|application”] />
还有一种是对标签哟!
还有一种是对标签哟!

<fmt:parseNumber>标签参数说明:

名称 说明 EL 类型 必须 默认
value 被解析的字符串 是 String 是 无
type 指定单位(数字、货币、百分比) 是 String 是 number
pattern 格式样式 是 String 否 无
parseLocale 用来替代默认区域的设定 是 StString/java.util.Locale 是 默认本地样式
var 存储已经格式化的数据 否 String 否 无
scope var变量的作用域 是 String 是 page

<fmt:parseNumber>可以看作是<fmt:formatNumber>的逆运算。相应的参数和类型的配置和使用<fmt:formatNumber>格式化时相同。

【示例代码】:实现了从字符串中提取数据,并用合适的数据类型进行存储(浮点性、整型等)。可以对转换后的数据进行加法运算

<!-- 准备的数据为 -->
        <fmt:formatNumber type="currency" var="money">188.8</fmt:formatNumber>
            <ul>
                <li>
                    格式化后的数据为:${money}
                </li>
                <fmt:parseNumber var="money" type="currency">${money}</fmt:parseNumber>
                <li>
                    解析格式化后的数据为:${money}
                </li>
                <li>
                    解析可以对格式化的后的数据进行运算:${money+200}
                </li>
                <li>
                    解析对百分比进行格式化98%为:
                    <fmt:parseNumber type="percent">98%</fmt:parseNumber>
                </li>
            </ul>
        <%--
        (1)首先使用<fmt:formatNumber>将188.8转换为字符串¥188.8并在page范围内存储一个String类型的变量,变量名为money。
        (2)使用<fmt:parseNumber>将¥188.8转化为浮点型的数据188.8并赋值为变量money,则变量money转变为一个浮点型的值188.8,对188.8进行加运算。
        (3)直接对一个百分比数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>标签属性说明:

属性名 说明 EL 类型 必须 默认值
value 将要格式化的日期对象 是 Java.util.Date 是 无
type 显示的部分(日期、时间或者两者)附录表B 是 String 否 date
partten 格式化的样式。 是 String 否 无
dateStyle 设定日期的显示方式 是 String 否 default
timeStyle 设定时间的显示方式 是 String 否 default
timeZone 设定使用的时区 是 String 否 当地所用时区
var 存储已格式化的日期或时间 否 String 否 无
scope 指定var存储的JSP范围 否 String 否 无

 

附录表B:type属性参数说明:

参数名 说明
time 只显示时间
date 只显示日期
both 显示日期和时间

【示例程序】:实现了对日期的格式化,使用了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>标签主要将字符串类型的时间或日期转化为时间或日期对象。

<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:parseData>标签属性说明:

属性名 说明 EL 类型 必须 默认值
value 将要格式化的日期时间 是 String 是 无
type 字符串的类型(日期、时间或全部) 是 String 是 date
pattern 字符串使用的时间样式 是 String 是 无
parseLocale 取代默认地区设定 是 String 是 默认地区
dateStyle 字符串使用的日期显示方式 是 String 否 default
timeStyle 字符串使用的时间显示格式 是 String 否 default
timeZone 使用的时区 是 String 否 当地区时
var 使用var定义的名字保存对象 否 String 否 无
scope var的JSP范围 否 String 否 page

【示例代码】:实现了以下功能:

  首先,使用了<fmt:formatDate>把一个日期对象格式化成一个日期的字符串,并把该字符串以参数名为a存储page范围内。

  其次,使用<fmt:parseDate>方法把a的值(字符串)格式化成一个Date并以参数名为b存储在page范围内。

  最后,使用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)中的参数对比,可以发现两者是一个互逆的过程。
(3)使用Java脚本进行测试Date对象的toString()方法可以输出时间字符串。hashCode()可以得到一个对象的hashCode。该方法只能应用于对象,因此可以证明得到的是一个日期对象。
--%>

 

[应用篇]JSTL之fmt标签日期和数字格式化

原文:http://www.cnblogs.com/pangxiansheng/p/4439206.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!