JAVAWEB學習(10)
EL表示式和JSTL
一、EL表示式
1.1. EL表示式是什麼
是一套簡單的運算規則,用於給jsp標籤的屬性賦值,也可以脫離jsp標籤,直接使用。
1.2. EL表示式的使用
1.2.1. 讀取bean的屬性值
javabean指的是一個符合如下要求的Java類:
public class xxx{
public xxx(){}
//最好實現Serializable介面
//有一些屬性及對應的get/set方法
}
-
方式一
${user.username}
-
容器依次從pageContext–>request–>session–>application中查詢綁訂名為"user"的物件,找到之後,呼叫該物件的
getUsername
-
會將null轉換成""輸出。
-
如果找不到對應的物件,不會報空指標異常。
-
可以使用"
pageScope
,requestScope
,sessionScope
,applicationScope
"來指定查詢範圍,比如:${sessionScope.user.username}
-
-
方式二
${user['username']}
- []裡面允許使用綁訂名,比如
${user[s1]}
- []裡面允許使用從0開始的下標(整數),用來讀取陣列中的某個元素。
- []裡面允許使用綁訂名,比如
1.2.2 EL表示式的運算
-
算術運算:
+,-,*,/,%
+
只能求和 -
關係運算:
>,>=,<,<=,==,!=
-
邏輯運算:
&&,||,!
-
empty運算:
empty
1.2.3. 讀取請求引數值
${param.username}
等價request.getParameter("username")
${paramValues.city}
等價request.getParameterValues("city")
二、JSTL
2.1. JSTL是什麼
apache開發的一套jsp標籤,後天捐獻給了sun,sun將其命名為jstl
2.2. 如何使用JSTL
2.2.1. 導包
<dependency>
<groupId>jstl</groupId >
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
2.2.2. 使用tablib指令來匯入要使用的標籤
<%@ taglib uri="" prefix="" %>
uri屬性用來指定要匯入的標籤的名稱空間
名稱空間是為了區分同名的元素,在元素前新增的一段說明,通常是一個域名
prefix屬性用來指定名稱空間的別名
2.2.3. 核心標籤
-
if標籤
-
語法
<c:if test=""> xxxx </c:if>
-
當test屬性值為true時,執行標籤體的內容,test屬性值可以使用el表示式來賦值
-
var屬性指定繫結名,scope屬性指定綁定範圍(可以使page,request,session,application)
-
-
choose標籤
-
語法
<c:choose> <c:when test=""> </c:when> <c:otherwise> </c:otherwise> </c:choose>
-
when可以出現一次或者多次,表示一個分支(相當於一個if語句)
當test屬性值為true時,執行標籤體的內容
-
otherwise可以出現0次或者一次,表示例外
-
-
forEach 標籤
-
語法
<c:forEach items=""> </c:forEach>
-
items
指定要遍歷的集合或者陣列,可以使用el表示式來賦值 -
var
屬性指定繫結名,綁定範圍固定是pageContext該標籤每次從集合或者陣列中取一個元素,然後將該元素繫結到pageContext上
-
varStatus
屬性指定繫結名,綁定範圍固定是pageContext繫結值是一個特殊的物件,該物件提供了一些方法,可以通過這些方法來獲得當前遍歷的狀態:
getIndex()
:用來獲得當前正在被遍歷的元素的下標,下標從0開始getCount()
:用來獲得當前是第幾次遍歷
-