1. 程式人生 > >10.JSTL和EL

10.JSTL和EL

十. JSTL和EL

  1. 為什麼需要EL

在JSP中使用Java指令碼的侷限

    1. 在JSP頁面中嵌入大量的Java程式碼
    2. 訪問結構比較複雜的資料時程式碼煩瑣,且經常需要強制型別轉換

    1. EL表示式使JSP的開發變得更加簡單

${requestScope.employee.computer.manufacturer}

  1. EL表示式簡介
    1. 什麼是EL
      • Expression Language(表示式語言)
    2. EL的功能
      • 替代JSP頁面中資料訪問時的複雜編碼
    3. EL的特點
      • 自動轉換型別
        1. EL得到某個資料時可以自動轉換型別
      • 使用簡單
  2. EL表示式語法6-1

${ EL expression }

    1. 通過變數名取值
    2. 獲取物件的屬性值
    3. 獲取集合元素
    4. 執行表示式
  1. EL表示式語法6-2

${變數名}

按照page → request → session → application的作用域順序依次查詢,找到即返回,最終找不到返回null

指定作用域

  1. EL表示式語法6-3

獲取物件的屬性值

<%=  ( (User) request.getAttribute("user") ) .getName()  %>

點操作符

${user.name}

[ ]操作符

${user["name"]}

  1. EL表示式語法6-4

獲取集合元素-List

  1. EL表示式語法6-5

獲取集合元素-Map

  1. EL表示式語法6-6

執行表示式

關係操作符

邏輯操作符

empty操作符

  1. EL隱式物件

  1. EL隱式物件介紹

  1. EL表示式的綜合應用

  1. 為什麼使用JSTL

EL表示式封裝了資料訪問的功能,而JSTL標籤庫則封裝了邏輯控制、迴圈控制以及資料格式化等功能,二者結合使用才能完整實現動態頁面的開發需求

  1. 什麼是JSTL

什麼是JSTL

JSP標準標籤庫(JSP Standard Tag Library)

JSTL通常會與EL表示式合作實現JSP頁面的編碼

  1. JSTL的環境搭建

使用JSTL的步驟

    1. 引入JSTL的jar檔案和標籤庫描述符檔案
    2. 在JSP頁面新增taglib指令
    3. 使用JSTL標籤

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

  1. JSTL標準標籤庫介紹

  1. 通用標籤4-1

set:設定指定範圍內的變數值

將value值儲存到範圍為scope的變數variable中

<c:set  var="variable"  value="value"  scope="scope" />

將value值設定到物件的屬性中

<c:set  target="target"  property="property"  value="value" />

示例:

// 在Servlet或JSP中設定JavaBean

User  user = new  User();

request.setAttribute("user",  user);

// 在JSP中修改JavaBean的屬性值

<c:set target="${user}" property="name" value="defaultName" />

  1. 通用標籤4-2

out:計算表示式並將結果輸出顯示

不指定預設值

<c:out  value="value" />

指定預設值

<c:out  value="value"  default="default" />

示例:

// 在Servlet或JSP中設定JavaBean

User  user = new  User();

request.setAttribute("user",  user);

// 在JSP中輸出JavaBean的屬性值

<c:out  value="${user.name}"  default="No UserName" />

  1. 通用標籤4-3

out:計算表示式並將結果輸出顯示

轉義特殊字元

  1. 通用標籤4-4

<c:remove  var="variable"  scope="scope" />

  1. 小結

通用標籤的使用

  1. 條件標籤3-1

if:實現Java語言中if語句的功能

  1. 條件標籤3-2

使用if標籤判斷是否登入

  1. 條件標籤3-3

choose:實現if - else if - else語句的功能

  1. 迭代標籤4-1

forEach:實現對集合物件的遍歷

  1. 迭代標籤4-2

  1. 迭代標籤4-3

通過迭代標籤遍歷Map

  1. 迭代標籤4-4

forEach:指定迭代的次數

  1. 總結