jsp fmt标签详解
詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt326
JSTL標簽提供了對國際化(I18N)的支持,它可以根據發出請求的客戶端地域的不同來顯示不同的語言。同時還提供了格式化數據和日期的方法。實現這些功能需要I18N格式標簽庫(I18N-capable?formation?tags?liberary)。引入該標簽庫的方法為:
<%@?taglib?prefix="fmt"?uri="http://java.sun.com/jsp/jstl/fmt"?%>
I18N格式標簽庫提供了11個標簽,這些?標簽從功能上可以劃分為3類如下:
(1)數字日期格式化。formatNumber標簽、formatData標簽、parseNumber標簽、parseDate標簽、timeZone標簽、setTimeZone標簽。
(2)讀取消息資源。bundle標簽、message標簽、setBundle標簽。
(3)國際化。setlocale標簽、requestEncoding標簽。
接下將詳細介紹這些標簽的功能和使用方式。
9.3.1?數字日期格式化
數字日期格式化標簽共有6個,用來將數字或日期轉換成設定的格式。
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]
/>
【語法2】:?
<frm:formatNumber?[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>標簽參數說明:
| 名稱 | 說明 | EL | 類型 | 必須 | 默認值 |
| value | 要格式化的數據 | 是 | String | 是 | 無 |
| type | 指定類型(單位、貨幣、百分比等)見表 | 是 | 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 |
Type屬性的類型應用:.
| 類型 | 說明 | 示例 |
| number | 數字格式 | 0.8 |
| currency | 當地貨幣 | ¥0.80 |
| percent | 百分比格式 | 80% |
【示例代碼】:實現了對數字的格式化、貨幣的格式、貨幣的格式化。使用<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>使用默認分組。</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>
?<c:out?value="${money}"></c:out>
?</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”]
/>
【語法2】:
<fmt:parseNumber?[type=”number|currency|percent”]
????????????????????????????????????????????????????????[pattern=”pattern”]
????????????????????????????????????????????????????????[parseLocale=”locale”]
????????????????????????????????????????????????????????[intergerOnly=”true|false”]
????????????????????????????????????????????????????????[scope=”page|request|session|application”]
>?
Number
</fmt:parseNumber>
<fmt:parseNumber>標簽參數說明:
| 名稱 | 說明 | EL | 類型 | 是否必須 | 默認值 |
| value | 被解析的字符串 | 是 | String | 是 | 無 |
| type | 指定單位(數字、貨幣、百分比) | 是 | String | 是 | number |
| pattern | 格式樣式 | 是 | String | 否 | 無 |
| parseLocale | 用來替代默認區域的設定 | 是 | String, 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>
?<li>格式化前的數據為:<c:out?value="${money}"></c:out>
?<fmt:parseNumber?var="money"?type="currency">${money}</fmt:parseNumber>
?<li>格式化后的數據為:<c:out?value="${money}"></c:out>
?<li>可以對格式化的后的數據進行運算:?
?<c:out?value="${money+200}"></c:out>
?<li>對百分比進行格式化98%為:
?<fmt:parseNumber?type="percent">98%</fmt:parseNumber>
【代碼解析】:
(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 | 顯示的部分(日期、時間或者兩者)。 | 是 | String | 否 | date |
| partten | 格式化的樣式。 | 是 | String | 否 | 無 |
| dateStyle | 設定日期的顯示方式。 | 是 | String | 否 | default |
| timeStyle | 設定時間的顯示方式。 | 是 | String | 否 | default |
| timeZone | 設定使用的時區。 | 是 | String | 否 | 當地所用時區 |
| var | 存儲已格式化的日期或時間。 | 否 | String | 否 | 無 |
| scope | 指定var存儲的JSP范圍。 | 否 | String | 否 | 無 |
type屬性參數說明:
| 參數名 | 說明 |
| time | 只顯示時間 |
| date | 只顯示時期 |
| both | 顯示日期和時間 |
【示例程序】:實現了對日期的格式化,使用了type、dateStyle、timeStyle等屬性。
<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)首先通過配置JavaBean在頁面上實例化java.util.Date對象。實現代碼如下:
<jsp:useBean?id="date"?class="java.util.Date"></jsp:useBean>
(2)對日期對象進行格式化時${date}是一個日期對象,如果給value設的值為String時程序會報錯。
(3)設置type為both時,將顯示日期和時間,同時示例中依次改變dateStyle和timeStyle的值作為比較。
4.<fmt:parseDate>標簽
<fmt:parseDate>標簽主要將字符串類型的時間或日期轉化為時間或日期對象。
【語法1】:
<fmt:parseDate?value=”date”?[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”]
/>
【語法2】:
<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 | 字符串的類型(日期、時間或全部) | EL | 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為對象。
<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());
???%>
???</body>
</html>
【代碼解析】:
(1)使用<fmt:formatDate>把日期對象格式化成字符串。
(2)使用<fmt:parseDate>把字符串對象轉化為日期對象,注意同(1)中的參數對比,可以發現兩者是一個互逆的過程。
(3)使用Java腳本進行測試Date對象的toString()方法可以輸出時間字符串。hashCode()可以得到一個對象的hashCode。該方法只能應用于對象,因此可以證明得到的是一個日期對象。
5.<fmt:setTimeZone>標簽
該標簽用于設定默認時區或者將時區存儲在指定的JSP范圍內。
【語法】:
<fmt:setTimeZone?value=”value”?[var=”name”][scope=”page|request|session|application”]/>
<fmt:setTimeZone>標簽屬性說明:
| 參數名 | 說明 | EL | 類型 | 必須 | 默認值 |
| value | 使用的時區 | 是 | String Java.util.TimeZone | 是 | 無 |
| var | 使用var定義的參數名保存值 | 否 | String | 否 | 無 |
| scope | 存儲var的JSP范圍 | 否 | String | 否 | page |
value用來設定使用的時區,例如中國使用的時區為CST,其他的還有EST、PST等。可以把時區存儲在指定的JSP范圍內,例如存儲在session中,用戶訪問的所有頁面都可以顯示使用的設定的時區下對應的時間。
【示例代碼】
<fmt:setTimeZone?value=”EST”?scope=”session”/>
提示:有關TimeZone的說明見JDK幫助文檔的java.util.TimeZone類。
6.<fmt:timeZone>標簽
該標簽主要用于設置標簽體內使用的時區。
【語法】:
<fmt:timeZone?value=”timeZone”>
…..
</fmt:timeZone>
使用<fmt:timeZone></fmt:timeZone>只會應用到標簽體內使用的時區,對標簽外部將不產生影響。
9.3.2?讀取消息資源
讀取消息資源用到的標簽主要有4個:<fmt:message>標簽、<fmt:param>標簽、<fmt:bundle>標簽和<fmt:setBundle>標簽。主要用于從資源文件中讀取信息。
1.<fmt:bundle>標簽
該標簽主要用于將資源文件綁定于它的標簽體中的顯示。
【語法】:
<fmt:bundle?basename=”name”[prefix=”prefix”]>
….標簽主題
</fmt:bundle>
<fmt:bundle>標簽屬性說明:
| 參數名 | 說明 | EL | 類型 | 必須 | 默認值 |
| basename | 指定使用的資源文件的名稱 | 是 | String | 是 | 無 |
| prefix | 前置關鍵字 | 是 | String | 否 | 無 |
2.<fmt:setBundle>標簽
該標簽主要用于綁定資源文件或者把資源文件保存在指定的JSP范圍內。
【語法】:
<fmt:setBundle?basename=”name”?[var=”name”]
?????????????????????????????????????[scope=”page|request|session|application”]
>?
<fmt:setBundle>標簽屬性說明:
| 參數名 | 說明 | EL | 類型 | 必須 | 默認值 |
| basename | 指定使用的資源文件的名稱 | 是 | String | 是 | 無 |
| var | 指定將資源文件保存的名稱 | 否 | String | 否 | 無 |
| scope | 設定將資源文件保存的JSP范圍 | 否 | String | 否 | page |
3.<fmt:message>標簽
該標簽主要負責讀取本地資源文件,從指定的消息文本資源文件中讀取鍵值,并且可以將鍵值保存在指定的JSP范圍內。
【語法1】:
<fmt:message?key=”keyName”[bundle=”bundle”]
?????????????????????????????????????[scope=”page|request|session|application”]
/>
【語法2】:
<fmt:message?key=”keyName”[bundle=”bundle”]
?????????????????????????????????????[scope=”page|request|session|application”]
>?
<fmt:param/>
</fmt:message>
【語法3】:
<fmt:message?key=”keyName”[bundle=”bundle”]
????????????????????????????????????????????????????????[scope=”page|request|session|application”]
>?
key<fmt:param/>
…
</fmt:message>
<fmt:message>標簽屬性說明:
| 參數名 | 說明 | EL | 類型 | 必須 | 默認值 |
| key | 指定鍵值的名稱(索引) | 是 | String | 是 | 無 |
| bundle | 指定消息文本的來源 | 是 | LocalizationContext | 否 | 無 |
| var | 指定存儲鍵值的變量名 | 否 | String | 否 | 無 |
| scope | 指定var的作用域 | 否 | String | 否 | page |
提示:建議此處的bundle使用EL表達式,因為屬性bundle的類型為LocalizationContext,而不是一個String類型的URL。
【示例代碼】:實現從指定的資源文件中讀取對應key的值。
首先編寫一個資源文件內容下
name=olive
password=01234
使用標簽從資源文件中讀取相應的值。
???<fmt:bundle?basename="message">
???<c:out?value="從message資源文件中得到的key為name的值為:"></c:out>
???<fmt:message?key="name"?></fmt:message>
???</fmt:bundle>
???<hr>
???<fmt:setBundle?basename="message"?var="m"/>
???<fmt:message?key="password"?bundle="${m}"></fmt:message>
????${m}
????【代碼解析】:
(1)使用<fmt:bundle>標簽指定從message.properties文件中讀取值。
(2)使用<fmt:message>標簽讀取資源文件中key為name的值。<fmt:message>標簽放在<fmt:bundle>標簽體內使用。
(3)使用<fmt:setBundle>標簽在page范圍綁定一個配置文件,以m為參數名存儲。
(4)使用<fmt:message>標簽得到key為password的值,此處指定資源文件的方式為使用<fmt:message>標簽的bundle屬性來設定。
(5)輸出參數m的值,加深對bundle的理解。
<fmt:bundle>標簽中有一個prefix屬性,該標簽用來指明前綴。例如配置文件內容如下:
org.person.name=olive
org.personpassword=01234
如果不使用prefix標簽,在取值是要指明前綴。例如:
<fmt:bundle?basename=”message”>
<fmt:message?key=”org.person.name”></fmt:message>
<fmt:message?key=”org.person.password”></fmt:message>
</fmt:bundle>
使用prefix屬性可以簡化取值時的代碼。
<fmt:bundle?basename=”message”?prefix=”org.person”>
<fmt:message?key=”name”></fmt:message>
<fmt:message?key=”password”></fmt:message>
</fmt:bundle>
4.<fmt:param>標簽
該標簽主要用于當<fmt:message>中資源文件中獲得鍵值時,動態的為資源文件中的變量賦值。
【語法1】:
<fmt:param?value=”value”/>
【語法2】:
<fmt:param?>
…標簽主體
</fmt:param>
【示例代碼】:
(1)創建資源文件。在message.properties文件中增加一個key和value。
news={0}?welcome?to?out?website!<br>today?is?:{1,date}
表達的含義是鍵news對應的是一個字符串,字符串中還有動態變量{0}表示第一個動態變量,{1,date}表示第二個動態變量并且該變量是一個日期類型的對象。
(2)通過標簽從資源文件中取出鍵值,并給動態變量賦值顯示在頁面。
???<fmt:bundle?basename="message">
???<fmt:message?key="news">
???<fmt:param?value="olive"?/>
???<fmt:param?value="${date}"/>
???</fmt:message>
???</fmt:bundle>
??
【代碼解析】:
(1)使用<fmt:bundle>標簽把資源文件綁定在標簽體內。
(2)在<fmt:bundle>標簽體內使用<fmt:message>得到鍵值。
(3)使用<fmt:param>為資源文件中的動態變量賦值。
9.3.3?國際化
國際化這個分類中共包含兩個標簽:用于設定語言地區<fmt:setLocale/>和用于設定請求的字符編碼的<fmt:requestEncoding>標簽。
1.<fmt:setLocale/>標簽
<fmt:setLocale>標簽用來設定用戶語言區域。
【語法】:
<fmt:setLocale?value=”locale”[variant=”variant”]
????????????????????????????[scope=”page|request|session|application”]>
<fmt:setLocale>標簽屬性說明:
| 參數名 | 說明 | EL | 類型 | 必須 | 默認值 |
| value | 指定區域代碼 | 是 | String java.util.Locale | 是 | 無 |
| variant | 操作系統的類型 | 是 | String | 是 | 無 |
| scope | 設定時區的作用范圍 | 否 | String | 是 | page |
value屬性用來指定使用的語言代碼,可以從瀏覽器的【工具】---【Internet選項】---【語言】---【添加】中查看瀏覽器支持的語言種類及語言代碼。例如:中文(zh_cn)、臺灣(zh_tw)、香港(zh_mo)等。
【示例代碼】:實現了設定不同的區域代碼,根據不同的區域代碼瀏覽將顯示不同格式的日期。
???<fmt:setLocale?value="en_us"?/>
???<fmt:formatDate?value="${date}"?type="both"?dateStyle="full"?timeStyle="full"/>
???<hr>
???<fmt:setLocale?value="zh_cn"?/>
???<fmt:formatDate?value="${date}"?type="both"?dateStyle="full"?timeStyle="full"/>
???<hr>
???<fmt:setLocale?value="zh_TW"/>
???<fmt:formatDate?value="${date}"?type="both"?dateStyle="full"?timeStyle="full"/>
【代碼解析】:
(1)瀏覽器默認跟您使用的操作系統的語言相同,因此默認值zh_cn。使用<fmt:setLocale/>標簽設置使用的語言為en_us(英語)。使用<fmt:formateDate>格式化輸出的時間字符串,該標簽會根據不同的語言輸出不同的日期格式。
(2)使用的語言修改為zh_cn,再次用格式化輸出。
(3)使用語言修改為zh_TW,輸出格式化后的時間。
2.<fmt:requestEncoding>標簽
該標簽用于設定請求的編碼格式。功能同servletRequest.setCharacterEncoding()方法相同。
【語法】:
<fmt:requestEncoding?[value=”charEncoding”]/>
【參數說明】:
value屬性用來指定使用的編碼集例如:gbk、gb2312等。當沒有給出value的值時將會自動搜索取尋找合適的編碼方式,因此能夠很好的解決中文亂碼問題。
轉載于:https://www.cnblogs.com/grefr/p/6088570.html
總結
以上是生活随笔為你收集整理的jsp fmt标签详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用pt-heartbeat检测主从复制
- 下一篇: 《信息安全系统设计基础》 实验五