<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" 將<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> 改為<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>即可 =============================================================================================================== 資源文件: <fmt:message key="acctType${l.acctType}"/> acctType0=其他 acctType1=個人儲蓄賬戶 acctType2=個人結算賬戶(儲蓄) acctType3=個人結算賬戶(對公) =============================================================================================================== 格式化時間日期金額等等: <fmt:formatDate value="${isoDate}" type="both"/>2004-5-31 23:59:59 <fmt:formatDate value="${date}" type="date"/>2004-4-1 <fmt:formatDate value="${isoDate}" type="time"/>23:59:59 <fmt:formatDate value="${isoDate}" type="date" dateStyle="default"/>2004-5-31 <fmt:formatDate value="${isoDate}" type="date" dateStyle="short"/>04-5-31 <fmt:formatDate value="${isoDate}" type="date" dateStyle="medium"/>2004-5-31 <fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/>2004年5月31日 <fmt:formatDate value="${isoDate}" type="date" dateStyle="full"/>2004年5月31日 星期一 <fmt:formatDate value="${isoDate}" type="time" timeStyle="default"/>23:59:59 <fmt:formatDate value="${isoDate}" type="time" timeStyle="short"/>下午11:59 <fmt:formatDate value="${isoDate}" type="time" timeStyle="medium"/>23:59:59 <fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/>下午11時59分59秒 <fmt:formatDate value="${isoDate}" type="time" timeStyle="full"/>下午11時59分59秒 CDT <fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/>星期四, 四月 1, 2004 13:30:00 -0600 <fmt:formatDate value="${isoDate}" type="both" pattern="d MMM yy, h:m:s a zzzz/>31 五月 04, 11:59:59 下午 中央夏令時 <fmt:formatDate value="${question.questiondate}" type="time" timeStyle="full" pattern="yyyy-MM-dd HH:mm"/>2009-01-11 00:28 百分數,千分數表示 <fmt:formatNumber value="${DoubleVALUE}" type="number" pattern="0.00‰"/> 0.01 ‰ <fmt:formatNumber value="${DoubleVALUE}" type="number" pattern="0.00%"/> 0.20 % 其他數字表示 fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> -- 123,456.79 <fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> -- 123,456.7 <fmt:formatNumber value="123456.7" pattern="#,#00.00#"/> -- 123,456.70 <fmt:formatNumber value="12" type="currency" pattern="$.00"/> -- $12.00 <fmt:formatNumber value="12" type="currency" pattern="$.0#"/> -- $12.0 <fmt:formatNumber value="1234567890" type="currency"/> --$1,234,567,890.00(那個貨幣的符號和當前web服務器的 local 設定有關) <fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> -- 123,456.79 <fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> -- 123,456.7 <fmt:formatNumber value="123456.7" pattern="#,#00.00#"/> -- 123,456.70 <fmt:formatNumber value="12" type="percent" /> -- 1,200% (type 可以是currency、 number、和percent)。 <fmt:formatNumber value="12" type="percent"/> -- 1,200%type 可以是currency、 number、 和percent。 貨幣表示 1 <fmt:setLocale value="ch_CH"/> <fmt:formatNumber value="${data}" type="currency"/> 2 <fmt:formatNumber value="${doubleValue}" type="number" pattern="¥0.00"/> java格式化輸出: DecimalFormat df = new DecimalFormat("格式"); String fmt =df.format(double); 符號 意義 0 一個數位 # 一個數位,前導零和追尾零不顯示 . 小數點分割位置 , 組分隔符的位置 - 負數前綴 % 用100乘,並顯示百分號 其他任何符號 在輸出字符串中包括指定符號 <%@ page language="java" contentType="text/html; charset=gb18030"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> <title>My JSP 'fmt.jsp' starting page</title> </head> <body> <c:set var="salary" value="3540.2301"/> <c:set var="total" value="56225.2301"/> <fmt:setLocale value="en_US"/> currency:<fmt:formatNumber value="${salary}" type="currency" currencyCode="USD"/><br> percent:<fmt:formatNumber value="${salary/total}" type="percent" maxFractionDigits="4"/><br> <hr> <jsp:useBean id="now" class="java.util.Date"></jsp:useBean> <fmt:setLocale value="zh_CN"/> full--><fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full"/><br> long--><fmt:formatDate value="${now}" type="both" dateStyle="long" timeStyle="long"/><br> medium--><fmt:formatDate value="${now}" type="both" dateStyle="medium" timeStyle="medium"/><br> default--><fmt:formatDate value="${now}" type="both" dateStyle="default" timeStyle="default"/><br> short--><fmt:formatDate value="${now}" type="both" dateStyle="short" timeStyle="short"/><br> </body> </html> =============================================================================================================== JSP 國際化-格式化貨幣和日期: 1.格式化貨幣 世界上許多國家都有不同的貨幣格式和數字格式慣例。針對特定的本地化環境正確地格式化和顯示貨幣是本地化的一個重要部分。 <%@ page 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>Currency Formatting</title> </head> <body> <h1>Currency Formatting and locales</h1> <h3>English, Great Britain</h3> <fmt:setLocale value="en_GB"/> <fmt:formatNumber type="currency" value="80000"/><br/> <h3>English, USA</h3> <fmt:setLocale value="en_US"/> <fmt:formatNumber type="currency" value="80000"/><br/> <h3>French, France</h3> <fmt:setLocale value="fr_FR"/> <fmt:formatNumber type="currency" value="80000"/><br/> <h3>Japanese, Japan</h3> <fmt:setLocale value="ja_JP"/> <fmt:formatNumber type="currency" value="80000"/><br/> <h3>Korean, Korea</h3> <fmt:setLocale value="ko_KR"/> <fmt:formatNumber type="currency" value="80000"/><br/> <h3>Spanish, Spain</h3> <fmt:setLocale value="es_ES"/> <fmt:formatNumber type="currency" value="80000"/><br/> <h3>Arabic, Egypt</h3> <fmt:setLocale value="ar_EG"/> <fmt:formatNumber type="currency" value="80000"/><br/> <h3>Using Local Numeric Formatting for Different Currency</h3> <h4>English, Great Britan</h4> <fmt:setLocale value="en_GB"/> <fmt:formatNumber type="currency" value="80000"/><br/> <fmt:formatNumber type="currency" value="80000" currencyCode="EUR"/><br/> </body> </html> 2.格式化日期 類似於數字和貨幣格式化,本地化環境還會影響生成日期和時間的方式。 <%@ page 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>Date Formatting</title> </head> <body> <h1>Date Formatting and locale</h1> <fmt:timeZone value="EST"> <jsp:useBean id="currentTime" class="java.util.Date"/> <h3>English, Great Britain</h3> <fmt:setLocale value="en_GB"/> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${currentTime}"/><br/> <h3>English, USA</h3> <fmt:setLocale value="en_US"/> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${currentTime}"/><br/> <h3>French, France</h3> <fmt:setLocale value="fr_FR"/> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${currentTime}"/><br/> <h3>Japanese, Japan</h3> <fmt:setLocale value="ja_JP"/> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${currentTime}"/><br/> <h3>Korean, Korea</h3> <fmt:setLocale value="ko_KR"/> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${currentTime}"/><br/> <h3>Spanish, Spain</h3> <fmt:setLocale value="es_ES"/> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${currentTime}"/><br/> <h3>Arabic, Egypt</h3> <fmt:setLocale value="ar_EG"/> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${currentTime}"/><br/> </fmt:timeZone> </body> </html> <fmt:formatDate>動作的屬性 type: 可以是time,date或both。控制是否只生成時間,只生成日期,或者時間日期都生成。 dateStyle: 可以是short, medium, long 或 full(default)。控制打印日期使用的具體格式。 timeStyle: 可以是short, medium, long 或 full(default)。控制打印時間使用的具體格式。 value: 這是一個java.util.Date 類型的值,用於生成日期和時間。 =============================================================================================================== 邏輯判斷標簽: <c:if test="${fn:substring(testname, 1, 2)=='n'}"> @@@ </c:if>
fn:contains(string, substring)
|
如果參數string中包含參數substring,返回true
|
fn:containsIgnoreCase(string, substring)
|
如果參數string中包含參數substring(忽略大小寫),返回true
|
fn:endsWith(string, suffix)
|
如果參數 string 以參數suffix結尾,返回true
|
fn:escapeXml(string)
|
將有特殊意義的XML (和HTML)轉換為對應的XML character entity code,並返回
|
fn:indexOf(string, substring)
|
返回參數substring在參數string中第一次出現的位置
|
fn:join(array, separator)
|
將一個給定的數組array用給定的間隔符separator串在一起,組成一個新的字符串並返回。
|
fn:length(item)
|
返回參數item中包含元素的數量。參數Item類型是數組、collection或者String。如果是String類型,返回值是String中的字符數。
|
fn:replace(string, before, after)
|
返回一個String對象。用參數after字符串替換參數string中所有出現參數before字符串的地方,並返回替換后的結果
|
fn:split(string, separator)
|
返回一個數組,以參數separator 為分割符分割參數string,分割后的每一部分就是數組的一個元素
(不截取空的值 如#####123# var[0]的值會為123)
|
fn:startsWith(string, prefix)
|
如果參數string以參數prefix開頭,返回true
|
fn:substring(string, begin, end)
|
返回參數string部分字符串, 從參數begin開始到參數end位置,包括end位置的字符
|
fn:substringAfter(string, substring)
|
返回參數substring在參數string中后面的那一部分字符串
|
fn:substringBefore(string, substring)
|
返回參數substring在參數string中前面的那一部分字符串
|
fn:toLowerCase(string)
|
將參數string所有的字符變為小寫,並將其返回
|
fn:toUpperCase(string)
|
將參數string所有的字符變為大寫,並將其返回
|
fn:trim(string)
|
去除參數string 首尾的空格,並將其返回
|
如果需要多個fn嵌套
<c:setvar="dateParts"value="${fn:split(dateString, '/')}"/> ...
${fn:replce(dateParts[0], '#','123')}