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>