Web 基礎17 JSP之JSTL入門

weixin_33749242發表於2018-03-31

1.1 JSTL簡介

  JSTL(JavaServer Pages Standard Tag Library,JSP標準標籤庫)是一個不斷完善的開放原始碼的JSP標籤庫,是由apache的jakarta小組來維護的。JSTL只能執行在支援JSP1.2和Servlet2.3規範的容器上,如tomcat 4.x。在JSP 2.0中也是作為標準支援的。

  • JSTL由開源組織Apache所提供和維護,
  • JSTL主要作用是移除JSP頁面中的Java程式碼,
  • JSTL提供了一系列的標籤庫,主要使用JSTL的核心標籤庫。
  • 使用步驟
    • 將JSTL的相關jar包匯入到WEB-INF/lib
    • 在JSP頁面中使用taglib指令匯入標籤庫
    • 在JSP頁面中使用標籤庫裡的標籤

匯入標籤指令

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
先使用這個包別記錯了
prefic 相當與別名

1.2 IF標籤

  • jsp標準標籤庫
    • xml庫
    • jdbc庫
    • 國際化庫
    • jsp 本來是 有很多功能的 現在已經不使用了 但是jsp的標準標籤庫還在使用
  • 設定資料標籤 set
    • var: 宣告一個變數
    • value:給這個變數賦值
    • Scope:放在什麼位置
   <c:set var="num" value="5" scope="page"></c:set>
  • if標籤
    • test:接El表示式,如果結果為true執行標籤體裡面的東西

    • 注意:if標籤裡面沒有else功能

<c:if test="${num > 3}">
    <h1>黑馬程式設計師</h1>
</c:if>
  • 練習
    • 判斷session域物件中username的值是否等於itbear,如果是則顯示歡迎登陸,否則顯示使用者名稱錯誤!

<c:set var="it" value="itbear" scope="session" ></c:set>
<c:if test="${it=='itbear'}" >
    <h1>歡迎光臨</h1>
</c:if>
<c:if test="${it!='itbear'}" >
    <h1>使用者名稱錯誤!</h1>
</c:if>

1.3 choose標籤

  • 與switch類似,可以有多個條件判斷
  • choose標籤按照順序判斷內部的when標籤裡面的test條件是否成立,如果有一個成立,結束choose標籤.當choose裡面所有的
  • when標籤都不成立時候,則會執行otherwise裡面的語句

格式 (改寫上面這個條件)

<c:choose>
    <c:when test="${username == 'itbear'}">
        <h1>歡迎登陸!</h1>
    </c:when>
    <c:otherwise>
        <h1>使用者名稱錯誤!</h1>
    </c:otherwise>
</c:choose>

  • 練習 :
    • 根據交通訊號燈做出不同的反應
<c:set var="color" value="yellow" scope="session"></c:set>
    <c:choose>
        <c:when test="${color =='red' }">
            <h1>stop</h1>
        </c:when>
        <c:when test="${color =='green' }">
            <h1>pass</h1>
        </c:when>
        <c:otherwise>
            <h1>wait</h1>
        </c:otherwise>
                
    </c:choose>

1.4 forEach標籤

  • 主要作用是對陣列物件或者集合物件進行遍歷的操作,
  • 通常和EL表示式組合使用,
  • forEach標籤所遍歷的通常是域物件中的陣列物件或者集合物件。
  • 第一種:類似普通的for迴圈
    • begin 從幾開始遍歷 end:遍歷到幾 var:宣告一個變數 額外屬性 step 步長
<c:forEach begin="1" end="100" var="i" step="2">
    ${i }<br>
</c:forEach>
  • 第二種:類似增強for迴圈
    • item:等待遍歷的集合或者是陣列物件 var:遍歷的臨時變數
<%
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
request.setAttribute("list", list);
%>

<c:forEach items="${list }" var="i">
    ${i } <br>
</c:forEach>
  • varStatus:用來宣告一個記錄遍歷狀態的變數
  • 他有兩個屬性
    • count:統計當前遍歷了幾次(做表格的時候可以生成前面的序號)
    • index:統計當前遍歷元素的索引
<c:forEach items="${list }" var="i" varStatus="status">
${status.count }--list[${status.index }]--${i } <br>
</c:forEach>

相關文章