概述
JSTL需要使用taglibs-standard-impl.jar和taglibs-standard-spec.jar包。
不過我這裡使用的開發環境是IDEA,使用JSTL标簽會自動導入相關引用。
如:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
核心标簽庫
通用标簽
<c:out>标簽
功能:用來顯示資料的内容,與<%=表達式%>或${表達式}類似。
文法:
<c:out value="輸出的資料" default="defaultValue"] />
其中value值可以是EL表達式也可以是字元串,default是可選屬性,表單當value值不存在時輸出defaultValue。
示例:
<c:out value="這是一個字元串" default="沒有資料" />
<c:set>标簽
功能一:設定作用域變量;
文法:
<c: set value="value" var="varName" [scope="page|request|session|application"] />
scope是一個可選屬性,表示在哪一個範圍内設定變量;
var表示變量的名稱;
value表示變量的值。
示例:
<c:set value="張三" var="username" scope="session"/>
相當于
<% session.setAttribute("username","張三"); %>
功能二:設定JavaBean的屬性。
文法:
<c:set value="value" target="target" property="propertyName" />
将value值賦給target對象(JavaBean對象)的propertyName屬性。
如果target為null或沒有set方法則抛出異常。
<c:remover>标簽
功能:删除某個變量。
文法:
<c:remove var="變量名" scope"page|reequest|session|application" />
示例:
<c:remove var="username" scope="session" />
相當于
<% session.removeAttribute("username") %>
流程控制标簽
<c:if>标簽
功能:實作if語句的作用,條件判斷。
文法:
<c:if test="條件表達式">
條件成立執行的内容
</c:if>
條件表達式可以是EL表達式也可以是JSP表達式。
如果表達式的值為true,則會執行主體内容,沒有對應的<c:else>标簽,是以如果如果條件不成立則需要使用<c:choose>、<c:when>及<c:other>标簽。
示例:
<c:if test="${3>2}">
${true}
</c:if>
<c:choose>、<c:when>及<c:otherwise>标簽
功能:<c:choose>、<c:when>及<c:otherwise>标簽實作if/elseif/else語句的作用
文法:
<c:choose>
<c:when test="條件表達式1">
主體内容1
</c:when>
<c:when test="條件表達式2">
主體内容2
</c:when>
<c:otherwise>
表達式都不成立時執行的主體内容
</c:otherwise>
</c:choose>
示例:
<c:choose>
<c:when test="${3>2}">
3大于2
</c:when>
<c:otherwise>
3不大于2
</c:otherwise>
</c:choose>
疊代标簽
<c:forEach>标簽
功能:實作for循環。
文法:
<c:forEach var="變量名" items="數組|Collection對象">
循環體
</c:forEach>
items屬性可以是數組也可以是集合對象,每次循環讀取其中的一個元素,并指派給var屬性指定的變量,然後就可以在循環體中使用var指定的變量擷取對象的元素。
示例:
<%
String[] users={"張三","李四","王五"};
%>
<c:forEach var="user" items="<%=users%>">
${user}
</c:forEach>
在有些情況下需要為<c:forEach>标簽指定begin、end、step和varStatus屬性。
- begin:為疊代時的開始位置,預設值為0;
- end:為疊代時的結束位置,預設值是最後一個元素;
- step:為疊代步長,預設值為1;
- varStatus:為疊代變量的狀态,包括count(疊代的次數)、index(目前疊代的索引,第一個索引為0)、first(是否為第一個疊代對象)和last(是否為最後一個疊代對象)。
<c:forTokens>标簽
功能:用于疊代字元串中由分隔符分隔的各成員。
文法:
<c:forTokens items="要疊代的字元串對象" delims="指定分隔字元串的分隔符" var="變量名">
循環體
</c:forTokens>
也有begin、end、step和varStatus屬性,用法相同。
示例:
<c:forTokens items="A,B,C,D,E,F" delims="," var="str">
${str}<br>
</c:forTokens>
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9UkaNpXTq1EeNhkW15kMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwUjNxMDN1AjM4ETMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)