10.JSTL和EL
十. JSTL和EL
- 為什麼需要EL
在JSP中使用Java指令碼的侷限
-
- 在JSP頁面中嵌入大量的Java程式碼
- 訪問結構比較複雜的資料時程式碼煩瑣,且經常需要強制型別轉換
-
- EL表示式使JSP的開發變得更加簡單
${requestScope.employee.computer.manufacturer}
- EL表示式簡介
- 什麼是EL
- Expression Language(表示式語言)
- EL的功能
- 替代JSP頁面中資料訪問時的複雜編碼
- EL的特點
- 自動轉換型別
- EL得到某個資料時可以自動轉換型別
- 使用簡單
- 自動轉換型別
- 什麼是EL
- EL表示式語法6-1
${ EL expression }
-
- 通過變數名取值
- 獲取物件的屬性值
- 獲取集合元素
- 執行表示式
- EL表示式語法6-2
${變數名}
按照page → request → session → application的作用域順序依次查詢,找到即返回,最終找不到返回null
指定作用域
- EL表示式語法6-3
獲取物件的屬性值
<%= ( (User) request.getAttribute("user") ) .getName() %>
點操作符
${user.name}
[ ]操作符
${user["name"]}
- EL表示式語法6-4
獲取集合元素-List
- EL表示式語法6-5
獲取集合元素-Map
- EL表示式語法6-6
執行表示式
關係操作符
邏輯操作符
empty操作符
- EL隱式物件
- EL隱式物件介紹
- EL表示式的綜合應用
- 為什麼使用JSTL
EL表示式封裝了資料訪問的功能,而JSTL標籤庫則封裝了邏輯控制、迴圈控制以及資料格式化等功能,二者結合使用才能完整實現動態頁面的開發需求
- 什麼是JSTL
什麼是JSTL
JSP標準標籤庫(JSP Standard Tag Library)
JSTL通常會與EL表示式合作實現JSP頁面的編碼
- JSTL的環境搭建
使用JSTL的步驟
-
- 引入JSTL的jar檔案和標籤庫描述符檔案
- 在JSP頁面新增taglib指令
- 使用JSTL標籤
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- JSTL標準標籤庫介紹
- 通用標籤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" />
- 通用標籤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" />
- 通用標籤4-3
out:計算表示式並將結果輸出顯示
轉義特殊字元
- 通用標籤4-4
<c:remove var="variable" scope="scope" />
- 小結
通用標籤的使用
- 條件標籤3-1
if:實現Java語言中if語句的功能
- 條件標籤3-2
使用if標籤判斷是否登入
- 條件標籤3-3
choose:實現if - else if - else語句的功能
- 迭代標籤4-1
forEach:實現對集合物件的遍歷
- 迭代標籤4-2
- 迭代標籤4-3
通過迭代標籤遍歷Map
- 迭代標籤4-4
forEach:指定迭代的次數
- 總結