**1.formatDate和formatNumber標籤:
fmt:foematNumber 標籤沒有指定var屬性將直接輸出結果。
如果指定了var屬性將把格式化後的字符串結果保存在變量中。**
<fmt:formatNumber value="${myNumber}" pattern="#,###.000"/>
<fmt:formatNumber var="strNumber" value="${myNumber}" pattern="#,###.000"/>
<h1>指定了屬性:${strNumber}</h1>
<fmt:formatDate value="${myDate}" pattern="yyyy-MM-dd"/>
<fmt:formatDate var="strDate" value="${myDate}" pattern="yyyy-MM-dd"/>
<h1>指定了屬性:${strDate}</h1>
<fmt:parseDate value="2018-09-05" pattern="yyyy-MM-dd"/>
<fmt:parseDate var="strDate" value="${myDate}" pattern="yyyy-MM-dd"/>
源代碼:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute("myNumber", Math.PI *10000);
request.setAttribute("myDate", new Date());
%>
<h3>原始值:${myNumber}</h3>
<pre>
fmt:formatNumber 標籤沒有指定var 屬性將直接輸出結果。
如果指定了var 屬性將把格式化後的字符串結果保存在變量中。
</pre>
<h1>沒有指定var 屬性: <fmt:formatNumber value="${myNumber}" pattern="#,###.000"/> </h1>
<fmt:formatNumber var="strNumber" value="${myNumber}" pattern="#,###.000" scope="page"/>
<h3>指定了var 屬性: ${pageScope.strNumber}</h3>
<fmt:parseNumber var="number" value="31,415.927" pattern="#,###.###"/>
<h3>31,415.927解析成數值 +1 的結果:${number + 1}</h3>
<hr>
<pre>
fmt:formatDate 標籤沒有指定var 屬性將直接輸出結果。
如果指定了var 屬性將把格式化後的字符串結果保存在變量中。
</pre>
<h1>沒有指定var 屬性: <fmt:formatDate value="${myDate}" pattern="yyyy年MM月dd日 HH:mm:ss"/></h1>
<fmt:formatDate var="strDate" value="${myDate}" pattern="yyyy年MM月dd日 HH:mm:ss" scope="request"/>
<h3>指定了var 屬性: ${requestScope.strDate}</h3>
<hr>
<pre>
fmt:parseDate 標籤沒有指定var 屬性將直接輸出結果。
如果指定了var 屬性將把格式化後的字符串結果保存在變量中。
</pre>
<fmt:parseDate value="2019年08月05日 17:57:27" pattern="yyyy年MM月dd日 HH:mm:ss"/>
<fmt:parseDate var="now" value="2019年08月05日 17:57:27" pattern="yyyy年MM月dd日 HH:mm:ss"/>
<br><br>
Date對象:${now}格式化後的結果:<fmt:formatDate value="${now}" pattern="yyyy-MM-dd"/>
</body>
</html>
運行結果:
注意:0:強制位數,要保留0。
#:後面是0就不會顯示。
2.requestEncoding標籤:設置編碼格式。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<body>
<form action="requestEncoding.jsp" method="post">
用戶名:<input type="text" name="username">
<br>
<br>
<button type="submit">Submit</button>
</form>
<h1>用戶名:${param.username}</h1>
</body>
運行結果:
中文出現亂碼情況,這時候我們需要設置編碼
<%-- 設置請求參數字符集編碼, 與request.setCharacterEncoding("utf-8") 作用一樣 --%>
<fmt:requestEncoding value="utf-8"/>
再次刷新提交後發現中文已經正常顯示出來:
3.綁定資源文件:
<fmt:setBundle basename="" var=""/> -綁定資源文件:*.properties
Locale(zh_CN, en_US): global_zh_CN.properties, global_en_US.properties
1).setBundle_setLocale.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<%-- 修改用戶的Locale 信息--%>
<fmt:setLocale value="${param.locale}"/>
<%-- 根據用戶的Locale綁定資源包文件 --%>
<fmt:setBundle var="message" basename="resources.message"/>
<body>
<br><br><br>
<a href="setBundle_setLocale.jsp?locale=zh_CN"><fmt:message bundle="${message}" key="login.lang.zh"/></a>
<a href="setBundle_setLocale.jsp?locale=en_US"><fmt:message bundle="${message}" key="login.lang.en"/></a>
<br><br>
<form action="requestEncoding.jsp" method="post">
<fmt:message bundle="${message}" key="user.login.username"/>:<input type="text" name="username">
<br>
<fmt:message bundle="${message}" key="user.login.password"/>:<input type="text" name="password">
<br>
<button type="submit"><fmt:message bundle="${message}" key="user.login.submit"/></button>
<button type="submit"><fmt:message bundle="${message}" key="user.login.reset"/></button>
</form>
<h1>用戶名:${param.username} </h1>
</body>
</html>
2)資源文件:
運行結果: