<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
前綴已經設定為fmt
功能 | 說明 | 語法 |
fmt:formatNumber | 設定數字的格式 | <fmt:formatNumber value="" var=""/> |
fmt:parseNumber | 設定字串的格式 | <fmt:parseNumber value="" var=""/> |
fmt:formatDate | 設定日期格式 | <fmt:formatDate value="" var=""/> |
fmt:parseDate | 設定字串的格式 | <fmt:parseDate value="" var=""/> |
fmt:setLocale | 設定區域環境變數,參數部分參考i18n相關設定 | <fmt:setLocale value="" var=""/> |
fmt:setBundle | 設定資料包的設定 | <fmt:setBundle value="" var=""/> |
fmt:timeZone | 設定時間地區 | <fmt:timeZone value="" var=""/> |
fmt:setTimeZone | 設定時間地區 | <fmt:setTimeZone value="" var=""/> |
fmt:message | 設定輸出字串可以配合多國語言 | <fmt:message value="" var=""/> |
fmt:requestEncoding | 使用多字元的編碼 | <fmt:requestEncoding value="" var=""/> |
fmt:bundle | 設定資料包的設定 | <fmt:bundle value="" var=""/> |
屬性說明:
(1)fmt:formatNumber
會與核心標籤庫搭配使用,如果不熟請先參讀核心標籤庫(Core Tag)
屬性參數 | 說明 | 例子 |
value | 需要,數字內容值 | <c:set var="number" value="500.00"/> <fmt:formatNumber value="${number}"/> |
type | NUMBER(預設),、CURRENCY、 PERCENT參數使用 | <c:set var="number" value="500.00"> <fmt:formatNumber value="${number}" type="CURRENCY"/> |
pattern | 數字格式客制化設定 | <fmt:formatNumber value="125.0000" pattern="NT: ###,###.000"/> |
maxIntegerDigits | 最大整數位,超過會四捨五入 | <fmt:formatNumber value="125.0000" maxIntegerDigits="3" /> |
minIntegerDigits | 最小整數位 | |
maxFractionDigits | 最大分數 | |
minFractionDigits | 最小分數 | |
scope | page|request|session|application | <fmt:formatNumber var="newNumber" value="125.0000" scope="page" /> |
var | 賦予變數名稱 | <fmt:formatNumber var="newNumber" value="125.0000" /> |
groupingUsed | 不會做group number | <fmt:formatNumber value="12500.000" groupingUsed="false" pattern="NT: ###,###.000" /> 輸出: 12500.000 |
- 樣式格式(pattern)
樣式 | 敘述 |
0 | 表示為一個數字 |
E | 表示exponential格式 |
# | 表示為一個數字,當有空缺已0去補滿 |
. | 為小數點 |
; | 分隔符號 |
- | 負數 |
% | 百分點 |
貨幣 | 可以在前面加入字母來表示貨幣的值 |
(2)fmt:parseNumber
會與核心標籤庫搭配使用,如果不熟請先參讀核心標籤庫(Core Tag)
屬性參數 | 說明 | 例子 |
value | 需要,數字內容值 | <c:set var="number" value="500.00"/> <fmt:parseNumber value="${number}" /> |
type | NUMBER(預設),、CURRENCY、 PERCENT參數使用 | <c:set var="number" value="500.00"> <fmt:parseNumber value="${number}" type="CURRENCY"/> |
parseLocale | 區域設定 | |
integerOnly | 是否只輸出整數部分預設為false | <fmt:parseNumber var="newNumber" value="125.0000" integerOnly="true" /> |
pattern | 客制化輸出 | <fmt:formatNumber value="125.0000" pattern="NT: ###,###.000"/> |
timeZone | 輸出時間 | <fmt:parseNumber var="newNumber" value="125.0000" /> |
var | 賦予變數名稱 | <fmt:parseNumber var="newNumber" value="125.0000" /> |
scope
| page|request|session|application | <fmt:parseNumber var="newNumber" value="125.0000" scope="page" /> |
(3)fmt:formatDate
屬性參數 | 說明 | 例子 |
value | 需要,日期內容值 | <c:set var="date" value=" new Date()"/> <fmt:formatDate value="${date}" /> |
type | DATE(預設)、TIME、 BOTH使用 | <c:set var="date" value=" new Date()"/> <fmt:formatDate value="${date}" type="DATE"/> |
dateStyle | FULL, LONG, MEDIUM, SHORT, or DEFAULT(預設) | <c:set var="date" value="new Date()"> <fmt:formatDate value="${date}" type="DATE"/> |
timeStyle | 是否只輸出整數部分預設為false | <fmt:formatDate var="newNumber" value="125.0000" integerOnly="true" /> |
pattern | 客制化輸出 | <fmt:formatDate value="125.0000" pattern="NT: ###,###.000"/> |
timeZone | 輸出時間 | <fmt:formatDate var="newNumber" value="125.0000" /> |
var | 賦予變數名稱 | <fmt:formatDate var="newNumber" value="125.0000" /> |
scope
| page|request|session|application | <fmt:formatDate var="newNumber" value="125.0000" scope="page" /> |
- 樣式格式(pattern)
樣式 | 敘述 |
y | 表示年 |
M |
表示月
|
d | 表示日 |
h(12制) | 表示小時(12制) |
H | 表示小時(24制) |
m | 表示分 |
s | 表示秒 |
S | 表示毫秒(millisecond) |
E |
表示一星期的禮拜幾
|
a | 表示AM/PM |
D | 表示一年中的第幾天 |
(4)fmt:parseDate
(5)fmt:setLocale
當我們要顯示國家的貨幣符號可以利用locale來完成,設定區域環境變數,參數部分參考i18n相關設定。 而下面例子我們美國為例:
====================程式片段=================================
<c:set var="money" value="500.00"/>
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="${money}" type="currency"/>
輸出結果: $500.00
(6)fmt:timeZone 與 fmt:setTimeZone
屬性: <fmt:timeZone value="地區參數" />
<c:set var="day1" value="<%=new Date()%>"/>
<fmt:setLocale value="zh_TW"/>
<fmt:formatDate value="${day1}" timeStyle="long" dateStyle="long" />
(7)fmt:message
通常作為
屬性參數 | 說明 | 例子 |
key | key值,通常將key設在properties中 | |
bundle | 用於資源包定義key/value對,如果<fmt:bundle>有定義就不需用此標記 | |
var | 字串變數名稱 | |
scope
| page|request|session|application |
EX:多國語言的介面,我們可以利用fmt:bundle和fmt:message來完成
英文: app.properties
lastName=Last Name firstName=First Name personInfo=Personal Infomation hobby=hobby sport=sport sport1=baseball sport2=football sport3=abadminton |
中文: app_zh_TW.properties
lastName=\u59d3 firstName=\u540d personInfo=\u500b\u4eba\u8868\u55ae sport=\u904b\u52d5 sport1=\u68d2\u7403 sport2=\u8db3\u7403 sport3=\u7fbd\u7403 hobby=\u55dc\u597d |
撰寫主畫面:main.jsp
<body> <c:url var="engURL" value="application.jsp"> <c:param name="locale" value="en_US"/> </c:url> <a href="${engURL}" >English</a> <c:url var="chineseURL" value="application.jsp"> <c:param name="locale" value="zh_TW" /> </c:url> <a href="${chineseURL}" >chinese</a> </body> |
個人表單畫面:application.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <html> <head> <title>Insert title here</title> </head> <c:set var="loc" value="en_US"/> <c:if test="${! empty (param.locale)}"> <c:set var="loc" value="${param.locale}"/> </c:if> <fmt:setLocale value="${loc}"/> <body> <fmt:bundle basename="app"> <table width="800" border="1px"> <tr><td colspan="2" style="text-align:center"><h1><fmt:message key="personInfo"></fmt:message> </h1></td></tr> <tr><td style="text-align:center"> <fmt:message key="lastName" /></td><td style="text-align:left"> <input type="text" name="lastName" value=""/></td> <tr><td style="text-align:center"><fmt:message key="firstName" /></td><td style="text-align:left"> <input type="text" name="firstName" value=""/></td> <tr><td style="text-align:center"><fmt:message key="hobby" /> </td><td style="text-align:left"> <input type="text" name="hobby" value=""/></td> <tr><td style="text-align:center"><fmt:message key="sport" /></td> <td style="text-align:left"> <fmt:message key="sport1" /><input type="checkbox" value="sport" value="baseball"> <fmt:message key="sport2" /><input type="checkbox" value="sport" value="football"> <fmt:message key="sport3" /><input type="checkbox" value="sport" value="abadminton"> </td> </fmt:bundle> <br> <tr><td colspan="2" style="text-align:center"><input type="submit" value="submit" /></td></tr> </table> <input type="hidden" name="locale" vaule="${loc}" ><br> </body> </html> |
(8)fmt:requestEncoding
<fmt:requestEncoding value="UTF-8" />
(9)fmt:bundle 與 fmt:setbundle
<fmt:bundle basename="資料包位址" prefix="" />
<fmt:setbudle basename="資料包位址" var=" " scope =" " />
留言
張貼留言