EL 表達式的全稱是:Expression Language。是表達式語言。
EL 表達式的什麼作用:EL 表達式主要是代替 jsp 頁面中的表達式指令碼在 jsp 頁面中進行數據的輸出。
因爲 EL 表達式在輸出數據的時候,要比 jsp 的表達式指令碼要簡潔很多。
EL 表達式的格式是:${ 表達式 }
EL 表達式在輸出 null 值的時候,輸出的是空串。jsp 表達式指令碼輸出 null 值
的時候,輸出的是 null 字串。
EL 表達式主要是在 jsp 頁面中輸出數據。 主要是輸出域物件中的數據。
當四個域中都有相同的 key 的數據的時候,EL 表達式會按照四個域的從小到大的順序去進行搜尋,找到就輸出。
輸出Bean的普通屬性、陣列屬性、List集合屬性、map 集合屬性
語法:${ 運算表達式 } ,EL 表達式支援如下運算子:
empty 運算可以判斷一個數據是否爲空,如果爲空,則輸出 true,不爲空輸出 false。
以下幾種情況爲空:
1、值爲 null 值的時候,爲空
2、值爲空串的時候,爲空
3、值是 Object 型別陣列,長度爲零的時候
4、list 集合,元素個數爲零
5、map 集合,元素個數爲零
表達式 1?表達式 2:表達式 3
如果表達式 1 的值爲真,返回表達式 2 的值,如果表達式 1 的值爲假,返回表達式 3 的值。
.點運算,可以輸出 Bean 物件中某個屬性的值。
[ ] 中括號運算,可以輸出有序集閤中某個元素的值。
並且 [ ] 中括號運算,還可以輸出 map 集閤中 key 裡含有特殊字元的 key 的值。
EL 個達式中 11 個隱含物件,是 EL 表達式中自己定義的,可以直接使用。
param Map<String,String> 它可以獲取請求參數的值
paramValues Map<String,String[]> 它也可以獲取請求參數的值,獲取多個值的時候使用。
header Map<String,String> 它可以獲取請求頭的資訊
headerValues Map<String,String[]> 它可以獲取請求頭的資訊,它可以獲取多個值的情況
cookie Map<String,Cookie> 它可以獲取當前請求的 Cookie 資訊
initParam Map<String,String> 它可以獲取在 web.xml 中設定的 上下文參數
JSTL 標籤庫 全稱是指 JSPStandardTagLibrary JSP 標準標籤庫。是一個不斷完善的開放原始碼的 JSP 標 签庫。
EL 表達式主要是爲了替換 jsp 中的表達式指令碼,而標籤庫則是爲了替換程式碼指令碼。這樣使得整個 jsp 頁面 變得更佳簡潔
(1)先匯入 jstl 標籤庫的 jar 包。
(2)第二步,使用 taglib 指令引入標籤庫。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
作用:set 標籤可以往域中儲存數據
<c:set scope="session" var="abc" value="abcValue"/>
作用:if 標籤用來做 if 判斷。
<c:if test="${ 12 == 12 }"> <h1>12 等於 12</h1> </c:if>
作用:多路判斷。跟 switch…case…default 非常接近
<c:choose>
<c:when test="${requestScope.height > 160}">
<h3>大於 160</h3>
</c:when>
<c:when test="${requestScope.height > 150}">
<h3>大於 150</h3>
</c:when>
<c:when test="${requestScope.height > 140}">
<h3>大於 140</h3>
</c:when>
<c:otherwise> 其他小於 140 </c:otherwise>
</c:choose>
作用:遍歷輸出使用。
① 遍歷 1 到 10,輸出
<table border="1">
<c:forEach begin="1" end="10" var="i">
<tr>
<td>第${i}行</td>
</tr>
</c:forEach>
</table>
② 遍歷 Object 陣列
<%
request.setAttribute("arr", new String[]{"18610541354","18688886666","18699998888"});
%>
<c:forEach items="${ requestScope.arr }" var="item">
${ item } <br>
</c:forEach>
③ 遍歷 Map 集合
<%
Map<String,Object> map = new HashMap<String, Object>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
%>
<c:forEach items="${ requestScope.map }" var="entry">
<h1>${entry.key} = ${entry.value}</h1>
</c:forEach>
④ 遍歷 List 集合
list 中存放 Student 類,有屬性:編號,使用者名稱,密碼,年齡,電話資訊
<c:forEach begin="2" end="7" step="2" varStatus="status" items="${requestScope.stus}" var="stu">
<tr>
<td>${stu.id}</td>
<td>${stu.username}</td>
<td>${stu.password}</td>
<td>${stu.age}</td>
<td>${stu.phone}</td>
<td>${status.step}</td>
</tr>
</c:forEach>