jstl 標籤庫

一、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屬性支持的集合

  1. .java.util.Collection:調用iterator()來獲得的元素。
  2. java.util.Map:通過java.util.Map.Entry所獲得的實例。
  3. java.util.Iterator:迭代器。
  4. java.util.Enumeration:枚舉。
  5. 數組。
  6. 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、引入標籤庫

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"]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章