JSTL各個標籤的解析以及使用

瘋狂行者發表於2020-12-31

1.準備

先匯入 jstl 標籤庫的 jar 包:

taglibs-standard-impl-1.2.1.jar

taglibs-standard-spec-1.2.1.jar

 

2.在JSP頁面中引入

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

 

3.核心庫使用:各個標籤解析

 3.1 <c:set/>(使用很少):為了設定值

<c:set /> 作 用 : set
標 籤 可 以 往 域 中 保 存 數 據
域 對 象 .setAttribute(key,value); 

scope 屬 性 設 置 保 存 到 哪 個 域 
page 表 示 PageContext 域 ( 默 認 值 ) 
request 表 示 Request 域 
session 表 示 Session 域 
application 表 示 ServletContext 域 

var 屬 性 設 置 key 是 多 少 
value 屬 性 設 置 值

3.2 <c:if/>

<c:if /> if 標 籤 用 來 做 if
判 斷 。
test
屬 性 表 示 判 斷 的 條 件 ( 使 用 EL
表 達 式 輸 出 )

例子:

<c:if test="${ 12 == 12 }"> <h1>12 等於 12</h1> </c:if>
 

3.3 <c:choose><c:when><c:otherwise>標籤

<c:choose> <c:when> <c:otherwise> 標 籤 作 用 : 多 路 判 斷 。 跟 switch ... case .... default
非 常 接 近
choose
標 籤 開 始 選 擇 判 斷
when
標 籤 表 示 每 一 種 判 斷 情 況 test 屬 性 表 示 當 前 這 種 判 斷 情 況 的 值 otherwise 標 籤 表 示 剩 下 的 情 況
<c:choose> <c:when> <c:otherwise> 標 籤 使 用 時 需 要 注 意 的 點 : 1 、 標 籤 裡 不 能 使 用 html 注 釋 , 要 使 用 jsp 注 釋 2 、 when 標 籤 的 父 標 籤 一 定 要 是 choose 標 籤 

例子:

<%
request.setAttribute("height", 180);
%>

<c:choose>

<c:when test="${ requestScope.height > 190 }">

<h2>小巨人</h2> </c:when>

<c:when test="${ requestScope.height > 180 }">

<h2>很高</h2> </c:when>

<c:when test="${ requestScope.height > 170 }"> <h2>還可以</h2> </c:when>

</c:choose>

3.4 <c:forEach/>

items表 示 遍 歷 的 集 合

var表 示 遍 歷 到 的 數 據

begin 表 示 遍 歷 的 開 始 索 引 值

end 表 示 結 束 的 索 引 值

step 屬 性 表 示 遍 歷 的 步 長 值

varStatus 屬 性 表 示 當 前 遍 歷 到 的 數 據 的 狀 態 

遍 歷 1到 10 , 輸 出
begin
屬 性 設 置 開 始 的 索 引
end
屬 性 設 置 結 束 的 索 引
var
屬 性 表 示 循 環 的 變 量 ( 也 是 當 前 正 在 遍 歷 到 的 數 據 ) for (int i = 1; i < 10; i++) 

<table border="1">

<c:forEach begin="1" end="10" var="i">

<tr> <td>第${i}行</td> </tr>

</c:forEach>

</table>
 

遍歷 Object 陣列

遍 歷 Object
數 組 for (Object item: arr)

items 表 示 遍 歷 的 數 據 源 ( 遍 歷 的 集 合 )

var遍歷當前得到的資料

例子:

<%
request.setAttribute("arr", new String[]{"1","2","3"});
%>

<c:forEach items="${ requestScope.arr }" var="item"> ${ item } <br> </c:forEach>

遍歷 Map 集合
例子:

<%
Map<String,Object> map = new HashMap<String, Object>(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); // for ( Map.Entry<String,Object> entry : map.entrySet()) { // } request.setAttribute("map", map); %>

<c:forEach items="${ requestScope.map }" var="entry"> <h1>${entry.key} = ${entry.value}</h1>

</c:forEach>
 

 

 

 

OK!問題解決!不會的給我私信!
覺得有幫助的可以關注一波!經常分享程式設計踩坑經驗!

 

 

相關文章