學習筆記九(JSTL)

JSTL

簡介:JSP Standard Tag Library(JSP標準標籤庫)
JSTL由5個不同功能的標籤庫組成。分爲:

1、核心:http://java.sun.com/jsp/jstl/core:c
2、格式化:http://java.sun.com/jsp/jstl/fmt:fmt
3、函數:http://java.sun.com/jsp/jstl/functions:fn
4、數據庫:http://java.sun.com/jsp/jstl/sql:sql
5、XML:http://java.sun.com/jsp/jstl/xml:x
數據庫和XML不使用,主要學習核心標籤庫的使用。

作用

  • JSTL替代JSP中的腳本中的代碼。

核心標籤(Core Tags)

使用JSTL
使用之前需要先導包,格式如下,使用jsp的taglib指令:

  • 導包:taglibs-standard-impl-1.2.1.jar
    taglibs-standard-spec-1.2.5.jar
  • <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
    (prefix表示標籤名)

使用:

JSTL常用標籤
1、<c:set>
<c:set>用於添加或修改域中的屬性
可以設置的屬性:

  • value
    作用:要設置的值
    參數類型:Object
  • var
    作用:表示域中存放的屬性名。
    參數類型:String
  • scope
    作用:指定域(page、request、session、application),若不指定則爲page域對象
    參數類型:String
  • target
    作用:要修改的域對象的屬性名(必須是JavaBean或者Map)
    參數類型:Object
  • property
    作用:指定要修改的對象的屬性名
    參數類型:String

例:
<c:set var=“變量名” value=“值” scope=“域範圍”>
<c:set target=“對象名” property=“屬性名” value=“屬性值”>
設置屬性:
<c:set var=“key” value=“value” scope=“request”></c:set>
修改屬性:
<c:set property=“name” target="${user}" value=“孫悟空”></c:set>

2、<c:out>
<c:out>用於計算一個表達式並將結果輸出到當前頁面。功能類似於JSP表達式<%= >和EL表達式${}

可以設置的屬性

  • value
    作用:要輸出的值
    參數類型:Object
  • default
    作用:當value爲null時顯示的默認值。
    參數類型:Object
  • escaXml
    作用:是否對特殊字符進行轉義。
    參數類型:boolean

例:
<c:out value=“值”>
<c:out value="${user.name}" default="" escapeXml=“true”></c:out>

3、<c:remove>
<c:remove>用於移除域中的屬性

可以設置的屬性:

  • var
    作用:設置要移除的屬性的名字
    參數類型:String
  • scope
    作用:設置要移除屬性所在的域,若不指定則刪除所有域中的對應屬性
    參數類型:String

例:
<c:remove var=“變量名” scope=“域範圍”>
移除所有域中key屬性:<c:remove var=“key”/>
移除request中的key屬性: <c:remove var=“key” scope=“request”/>

4、<c:if>
<c:if>用於實現if語句的判斷功能
可設置的屬性

  • test
    作用:設置if判斷的條件,用於判斷標籤體是否被執行
    參數類型:boolean
  • var
    作用:用於指定接收判斷結果的變量名
    參數類型:boolean
  • scope
    作用:指定判斷結果保存到哪個域
    參數類型:String

例:
<c:if test=“判斷的結果爲布爾值” var=“變量” scope=“域範圍”>
<c:if test="${empty user }" var=“isUserEmpty” scope=“request”>
用戶爲空
</c:if>

5、<c:choose>、<c:when>、<c:otherwise>
<c:choose>、<c:when>、<c:otherwise>三個標籤配合使用,功能類似於Java中的if/else
<c:choose>是<c:when>和<c:otherwise>的父標籤

<c:when>的屬性

  • test
    作用:用於設置判斷條件,若正確則c:when中的代碼執行,否則不執行
    參數類型:boolean
  • <c:otherwise>
    作用:如果所有的<c:when>都沒有執行則執行<c:otherwise>的標籤體

例:
<c:choose>
<c:when test="${param.age>=18 }">
您已經成年
</c:when>
<c:otherwise>
您未成年
</c:otherwise>
</c:choose>

6、<c:forEach>
<c:forEach>用於對多個對象的集合進行迭代,重複執行標籤體,或者重複迭代固定的次數。

可設置屬性:

  • var
    作用:設置遍歷出對象的名稱
    參數類型:String

  • items
    作用:指定要遍歷的集合對象
    參數類型:數組、字符串和各種集合

  • varStatus
    作用:指定保存迭代狀態的對象的名字,該變量引用的是一個LoopTagStatus類型的對象,通過該對象可以獲得一些遍歷的狀態:

    • count
    • index
    • first
    • last
    • name

    參數類型:String

  • begin
    作用:指定遍歷的開始位置
    參數類型:int

  • end
    作用:指定遍歷的結束位置
    參數類型:int

  • step
    作用:迭代的步長
    參數類型:int

例:
<c:forEach var=“變量名” begin=“起始下標” end=“結束下標” step=“步長” item=“迭代的集合|數組”></c:forEach>

<c:forEach items="${list}" var=“user” begin=“0” end=“4” step=“2” varStatus=“vs”>
${vs.index} – ${user.name } – ${user.age }

</c:forEach>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章