JavaWeb(JSTL標籤庫學習筆記)__java

來源:互聯網
上載者:User
一、 JSTL標籤庫

1.1、什麼是JSTL

Java Standard Tag Library Java標準標籤庫,一組由Sun公司已經製作好的擴充標籤庫,可以在JSP頁面直接使用。每個標籤都有它自己的功能。可以替換JSP頁面上的Java代碼。

1.2、JSTL標籤庫分類:

JSTL

首碼

URI

作用

核心標籤庫

c

http://java.sun.com/jsp/jstl/core

一組常用的核心標籤庫

國際化標籤

fmt

http://java.sun.com/jsp/jstl/fmt

用於頁面的國際化,在不同的國家顯示不同的語言

資料庫標籤

sql

http://java.sun.com/jsp/jstl/sql

可以直接在JSP頁面上使用標籤訪問資料庫

XML標籤

x

http://java.sun.com/jsp/jstl/xml

用於在JSP上解析XML

函數標籤

fn

http://java.sun.com/jsp/jstl/functions

在頁面上使用一組字串的函數


1.3、 JSTL 使用步驟

1.3.1. 導包jstl.jar庫

1.3.2. 在JSP頁面上使用taglib指令

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

1.3.3. 使用標籤庫

二、 判斷標籤<c:if>  2.1作用

屬性名稱

是否支援EL

屬性類型

屬 性 描 述

test

true

boolean

用來判斷運算式是否為真,如果為真,則執行if標籤內的代碼

var

false

String

將上面的test的運算結果存在這個變數名中

scope

false

String

將上面的test的運算結果放在哪個域中


2.2樣本:在LoginServlet中的會話添加一個使用者資訊,重新導向到login.jsp頁面,在login.jsp使用<c:if>進行判斷。如果目前使用者已經登入,則顯示"歡迎您。Xxx登入成功。",否則顯示一個登入的連結。

2.3代碼

<!-- 判斷會話域中是否有user對象,如果沒有,則跳轉到login.jsp -->  <c:if test="${empty sessionScope.user }" >    <!-- 重新導向 -->  <c:redirect url="/login.jsp"/>  </c:if>   歡迎您。${sessionScope.user}

三、多分支標籤 3.1作用

標籤名

作用

choose

判斷標籤的父標籤

when

多分支的判斷條件,屬性:test,類似於switch中case

otherwise

類似於switch中的default


四、遍曆標籤<c:forEach>

4.1作用:

屬性名稱

是否支援EL

屬性類型

屬 性 描 述

var

false

String

指定遍曆中每個元素的變數名

varStatus

false

String

每次迴圈對象的狀態,有4個屬性

items

true

任何支援的類型

要遍曆的集合或數組

begin

true

int

從哪一行開始

end

true

int

到哪一行結束

step

true

int

步長,每次跨幾條記錄


4.2 varStatuus屬性

屬性

類型

含義

index

int

當前是第幾個元素,從0開始

count

int

到當前這一行一共有多少個元素了

first

boolean

如果當前是第一個元素,則返回true

last

boolean

如果當前是最後一個元素,則返回true


4.3遍曆集合

<table border="1" width="600" align="center">      <caption>學生列表</caption>      <tr>      <th>編號</th>      <th>姓名</th>      <th>年齡</th>      <th>性別</th>      </tr>      <!--       每一行是一條記錄      items: 要遍曆的集合或數組      var: 集合或數組中的每個元素      varStatus: 當前元素狀態      ● index: 當前是第幾個元素,從0開始      ● count: 到當前這一行一共有多少個元素了      ● first: 如果當前是第一個元素,則返回true      ● last: 如果當前是最後一個元素,則返回true      begin: 從哪一行開始,從0開始      end: 到哪一行結束      step: 步長,跨幾步       -->      <c:forEach items="${requestScope.students}" var="stu" varStatus="row" >      <!-- 三元運算,如果為0,則輸出style這句話,否則什麼也不輸出 -->      <tr ${row.count % 2 == 0 ? "style='background-color: lightgreen'":""}>      <td>${row.count}</td>      <td>${stu.name}</td>      <td>${stu.age}</td>      <!-- 字串可以用單引號或雙引號 -->      <td>${stu.male?"男":"女"}</td>      </tr>      </c:forEach>      </table>

4.4遍曆數組

資料放在範圍中,如果不放在範圍中可以使用JSP運算式

遍曆數組:   <%   int [] arr = {44,12,5,1,2,3};   pageContext.setAttribute("arr", arr);   %>   <br/>   <c:forEach items="${arr}" var="num">       ${num} <br/>   </c:forEach>

4.5 遍曆Map:

<%/建立一個Map   HashMap<String, String> map = new HashMap<String, String>();   map.put("n1", "潘金蓮");   map.put("n2", "小喬");   map.put("n3", "孫悟空");      //放在請求域中   request.setAttribute("map", map);%><hr/>   遍曆Map   <br/>   <c:forEach items="${map}" var="entry">   ${entry.key }  ->  ${entry.value} <br/>   </c:forEach>

4.6類似於Java中for迴圈的用法
<hr/>   從1到100   <br/>   <c:forEach begin="1" end="100" var="i" step="2">   ${i} <br/>   </c:forEach>




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.