一、c標籤
1、引入標籤庫
- <%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>
2、out輸出標籤
<c:out name="value" //要輸出的表達式
[escapeXml="true|false"] //特殊字符是否轉換爲實體碼,如>轉換爲gt
[default="defaultValue"] //默認值
/>
如果要輸出的字符串中包含一段代alert的js腳本,如果直接用el表達式輸出的話瀏覽器會直接執行這個js腳本,這顯然是不對的因爲破壞了頁面結構;那麼想要正確輸出的話就可以使用c:out標籤。
3、set設置標籤
- 將value值設置到javabean對象具體屬性上或者map中,或使用自定義變量保存。
<c:set value="value"//設置的值
var="varname"//保存value值的變量名
[scope="page|request|session|application"]//存儲範圍
[target=""]//value值要設置到的javabean對象或者map對象,必須是el表達式
[property=""]//javabean屬性名或map的key值,與target配合使用
/>
4、remove標籤
- 刪除指定範圍內的變量。
<c:remove var="varName"
scope="page|request|session|application"
/>
5、邏輯標籤
<c:if test="el表達式"
var="varName"//將test結果保存到var變量中以便後續使用
[scope="page|request|session|application"]/>
<c:if test="el表達式"
[var="varName"]
[scope="page|request|session|application"]>
body content
</c:if>
<c:choose>
<c:when test="el表達式1">
body content1
<c:when/>
<c:when test="el表達式2">
body content1
<c:when/>
....
<c:otherwise>
body content3
</c:otherwise>
</c:choose>
6、forEach遍歷標籤
<c:forEach items="collection"//被遍歷的集合
[var="varName"]//當前元素變量名
[varStatus="name"]//包含循環狀態的一些信息
[begin=""]//循環起始索引,默認是0
[end=""]//循環結束索引,模式是最後一個元素索引
[step=""]>//每次迭代推進的長度(步長),默認是1
body content
</c:forEach>
<c:forEach var="item" items="${list}" varStatus="ind"
begin="0" end="10" step="2">
${item} 輸出當前元素
${item.name}輸出當前元素的name屬性(如果當前元素是個對象)
${ind.index } 索引
${ind.count }已經迭代的數量
${ind.current }當前迭代對象
${ind.first }是否第一個元素
${ind.last }是否最後一個元素
</c:forEach>
6.1、foreach中items屬性支持的集合
- .java.util.Collection:調用iterator()來獲得的元素。
- java.util.Map:通過java.util.Map.Entry所獲得的實例。
- java.util.Iterator:迭代器。
- java.util.Enumeration:枚舉。
- 數組。
- javax.servlet.jsp.jstl.sql.Result:SQL查詢所獲得的行。
7、forTokens標籤
- 用戶遍歷以特定分隔符進行分割的字符串。
<c:forTokens items="string"//要被分割的字符串
delims=""//分隔符
[var="varName"]//迭代的當前元素
[varStatus=""]//包含循環狀態的一些信息
[begin=""]//循環起始索引,默認是0
[end=""]//循環結束索引,模式是最後一個元素索引
[step=""]>//每次迭代推進的長度(步長),默認是1
body content
</c:forTokens>
8、url標籤
- 輸出處理過後的url。
<c:url value="url" //要處理的url
[context=""]//valueurl前面的上下文名稱
[var=""]//處理後的路徑存儲到哪個變量名中
[scope="page|request|session|application"]//存儲範圍
/>
9、redirect標籤
<c:redirect url="url" //需要重定向的地址
context=""//url前面的上下文名稱
/>
二、fn函數
1、引入標籤庫
- <%@ taglib prefix=”fn” uri=”http://java.sun.com/jsp/jstl/functions”%>
2、函數
${fn:trim(" hello word ")} //刪除字符串開頭和結尾的空白字符
${fn:length(string|list)} //返回字符串或列表的長度
${fn:subString(source, beginindex, endindex)} //返回source字符串中beginindex到endindex索引位置的字符串
${fn:subStringAfter(source, target) } //返回target字符串在source字符串中第一次出現位置的後面的所有字符串
${fn:subStringBefore(source, target)} //返回target字符串在source字符串中第一次出現位置的前面的所有字符串
${fn:toLowerCase(source) } //將字符串轉換爲小寫形式
${fn:toUpperCase(source)} //將字符串轉換爲大寫形式
${fn:startsWith(source, target)} //測試source字符串中是否以target字符串開始。
${fn:split(source, ",")} //將source字符串根據指定的分隔符進行分割並返回一個數組,一般配合迭代器使用
${fn:replace(source, target, comment)} //將source字符串中出現的所有target字符串替換爲comment字符串
${fn:join(array, ",")} //將數組元素以指定的分隔符連接成一個字符串
${fn:indexOf(source, target)} //查找target字符串在source字符串中第一次出現的索引值
${fn:escapeXml("<>ddd")} //將特殊符號轉換爲實體表示形式
${fn:endsWith(source, target)} //測試source字符串是否以target字符串結尾
${fn:contains(source, target)} //測試source串中是否包含target串
${fn:containsIgnoreCase(source, target)} //測試source串中是否包含target串
三、fmt標籤
1、引入標籤庫
- <%@ taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt”%>
2、formatNumber標籤
- 數字格式化標籤,可以格式化爲number、currency、percent 顯示樣式。
<fmt:formatNumber value="numericValue"//需要被格式化的字符串或數字
[type="number|currency|percent"]//要格式化的目標類型
[pattern=""]//自定義格式
[currencyCode="CAD|CNY|EUR|JPY|GBP|USD"]//貨幣編碼,CAD:加拿大元,CNY:人民幣,EUR:歐元,JPY:日元,GBP:英鎊,USD:美元
[currencySymbol=""]//貨幣符號,例如$、¥
[groupingUsed="true|false"]//輸出結果中是否包含組分隔符
[maxIntegerDigits=""]//整數部分最多幾位數字
[minIntegerDigits=""]//整數部分最少幾位數字
[maxFractionDigits=""]//小數部分最多幾位數字
[minFractionDigits=""]//小數部分最少幾位數字
[var=""]//輸出結果存儲到指定變量的名稱
[scope="page|request|session|application"]//var的存儲範圍
/>
2.1 、formatNumber示例
3 、formatDate標籤
- 將日期對象格式化爲字符串形式。
<fmt:formatDate value="date"//需要被格式化的日期或時間
[type="time|date|both"]//格式的是日期、時間、或者兩者
[dateStyle="default|short|medium|long|full"]//預定義日期格式
[timeStyle="default|short|medium|long|full"]//預定義時間格式
[pattern=""]//自定義格式
[timeZone=""]//定義用於顯示時間的時區
[var=""]//格式化後的值存儲到變量的變量名稱
[scope="page|request|session|application"]//var變量存儲範圍
/>
3.1、formatDate示例
<fmt:formatDate value="${isoDate}" type="both"/>//輸出: 2004-5-31 23:59:59
<fmt:formatDate value="${isoDate}" 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 下午 中央夏令時
3.2、Patter說明
d: 月中的某一天。一位數的日期沒有前導零。
dd: 月中的某一天。一位數的日期有一個前導零。
ddd: 週中某天的縮寫名稱,在 AbbreviatedDayNames 中定義。
dddd:週中某天的完整名稱,在 DayNames 中定義。
M: 月份數字。一位數的月份沒有前導零。
MM: 月份數字。一位數的月份有一個前導零。
MMM: 月份的縮寫名稱,在 AbbreviatedMonthNames 中定義。
MMMM:月份的完整名稱,在 MonthNames 中定義。
y: 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示不具有前導零的年份。
yy: 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示具有前導零的年份。
yyyy:包括紀元的四位數的年份。
gg: 時期或紀元。如果要設置格式的日期不具有關聯的時期或紀元字符串,則忽略該模式。
h: 2 小時制的小時。一位數的小時數沒有前導零。
hh: 12 小時制的小時。一位數的小時數有前導零。
H: 24 小時制的小時。一位數的小時數沒有前導零。
HH: 24 小時制的小時。一位數的小時數有前導零。
m: 分鐘、一位數的分鐘數沒有前導零。
mm: 分鐘、一位數的分鐘數有一個前導零。
s: 秒、一位數的秒數沒有前導零。
ss: 秒、一位數的秒數有一個前導零。
h: 小時,從1到12,範圍:01:00 AM~12:59AMH: 小時,從0到23 ,範圍:00:00 AM~23:59AM
4、parseNumber標籤
- 用於將以字符串表示的數字、貨幣、百分比解析成數字。
<fmt:parseNumber value="numericValue"//被解析的值
[type="number|currency|percent"]//被解析成什麼類型
[pattern=""]
[parseLocal=""]
[integerOnly="true|false"]
[var=""]
[scope="page|request|session|application"]
/>
5、parseDate標籤
- 將字符串格式的日期以區分地域的格式轉換爲對應的日期對象。
<fmt:parseDate value="dateString"
[type="time|date|both"]
[dateStyle="default|short|medium|long|full"]
[timeStyle="default|short|medium|long|full"]
[pattern=""]
[timeZone=""]
[parseLocale=""]
[var=""]
[scope="page|request|session|application"]