JSTL是apache對EL表達式的擴展(也就是說JSTL依賴EL),JSTL是標籤語言!JSTL標籤使用很是方便,它與JSP動做標籤同樣,只不過它不是 JSP內置的標籤,須要咱們本身導包,以及指定標籤庫。html
爲何須要JSTL標籤庫?在渲染jsp頁面時,不少時候會進行條件判斷、循環等操做,這時又要與java邏輯代碼混寫。JSTL就能夠解決這個問題java
一、導入JSTL(IDE版)apache
taglib中uri必須是這個,能夠看到這個uri變成紅色,爆紅意味着找不到,國內是訪問不到這個地址,咱們須要配置成本地標籤。
session
二、JSTL標籤的基本使用app
<%@ page import="java.util.HashMap" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Title</title> </head> <style> td{ text-align: center; } </style> <body> <%-- 1.內容輸出 <c:out value="" default=""></c:out> value:要輸出的內容 default:當value沒有設置值時,輸出default設置的值 2.向做用域設置屬性值 <c:set var="" value="" scope=""></c:set> var:表示參數的key value:表示參數的值 scope:指定向哪一個做用域設置屬性值,默認向pageContext做用域中設置屬性 3.刪除做用域的數據 <c:remove var="" scope=""></c:remove> var:要刪除屬性的key scope:刪除指定做用域的值,若是沒指定,則刪除全部做用域key的值 4.邏輯判斷 <c:if test="" var="" scope=""></c:if> test:邏輯判斷表達式 var:條件表達式的結果存儲變量 scope:結果變量存儲的做用域 <c:choose> 相似於switch case <c:when></c:when> <c:when></c:when> …… </c:choose> 5.循環 <c:forEach begin="0" end="3" step="1" var="data" items="" varStatus=""></c:forEach> begin:循環開始位置 end:循環結束位置 step:循環步長 var:循環數據每條記錄的迭代變量名(隨便起個變量名便可) items:要循環的數據 varStatus:循環狀態的變量值名稱(隨便起個名便可) --%> <c:set var="name" value="pageContext" scope="page"></c:set> <c:set var="name" value="request" scope="request"></c:set> <c:set var="name" value="session" scope="session"></c:set> <c:set var="name" value="application" scope="application"></c:set> <%--key相同,則優先取做用域範圍小的pageContext--%> <c:out value="${name}"></c:out><%--輸出pageContext--%> <%--key相同,如何取指定做用域中的值--%> <c:out value="${pageScope.name}"></c:out><%--輸出pageContext--%> <c:out value="${requestScope.name}"></c:out><%--輸出request--%> <c:out value="${sessionScope.name}"></c:out><%--輸出session--%> <c:out value="${applicationScope.name}"></c:out><%--輸出application--%> <c:remove var="name"></c:remove> <c:set var="i" value="2"></c:set> <c:if test="${i>1}" var="flag" scope="request"> <h3>JSTL</h3> </c:if> <c:set var="age" value="20"></c:set> <c:choose> <c:when test="${age<18}"> <b>青少年</b> </c:when> <c:when test="${age>=18}"> <b>成年</b> </c:when> </c:choose> <hr> <% HashMap<String, Integer> userInfo = new HashMap<String, Integer>(); userInfo.put("zhangsan", 20); userInfo.put("lisi", 22); userInfo.put("wangwu", 24); userInfo.put("zhaoliu", 25); pageContext.setAttribute("userInfo", userInfo); %> <table border="1px" cellspacing="0" > <tr> <td>姓名</td> <td>年齡</td> <td>當前循環索引</td> <td>當前循環次數</td> <td>當前是不是第一次循環</td> <td>當前是不是最後一次循環</td> </tr> <c:forEach begin="0" end="3" step="1" var="data" items="${userInfo}" varStatus="status"> <tr> <td>${data.key}</td> <td>${data.value}</td> <td>${status.index}</td> <td>${status.count}</td> <td>${status.first}</td> <td>${status.last}</td> </tr> </c:forEach> </table> </body> </html>
記住核心標籤庫便可,其餘標籤庫用到的時候再查
其餘標籤庫參考菜鳥教程https://www.runoob.com/jsp/js...jsp