1. 程式人生 > >JAVAWEB學習(10) - EL表示式和JSTL

JAVAWEB學習(10) - EL表示式和JSTL

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方法
}
  1. 方式一 ${user.username}

    • 容器依次從pageContext–>request–>session–>application中查詢綁訂名為"user"的物件,找到之後,呼叫該物件的getUsername

      方法,然後輸出該方法的結果.

    • 會將null轉換成""輸出。

    • 如果找不到對應的物件,不會報空指標異常。

    • 可以使用"pageScope,requestScope,sessionScope,applicationScope"來指定查詢範圍,比如:

      ${sessionScope.user.username}
      
  2. 方式二 ${user['username']}

    • []裡面允許使用綁訂名,比如${user[s1]}
    • []裡面允許使用從0開始的下標(整數),用來讀取陣列中的某個元素。

1.2.2 EL表示式的運算

  • 算術運算:+,-,*,/,%

    +只能求和

  • 關係運算:>,>=,<,<=,==,!=

  • 邏輯運算:&&,||,!

  • empty運算:empty

1.2.3. 讀取請求引數值

  1. ${param.username}等價request.getParameter("username")
  2. ${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標籤

    1. 語法

      <c:if test="">
      	xxxx
      </c:if>
      
    2. 當test屬性值為true時,執行標籤體的內容,test屬性值可以使用el表示式來賦值

    3. var屬性指定繫結名,scope屬性指定綁定範圍(可以使page,request,session,application)

  • choose標籤

    1. 語法

      <c:choose>
      	<c:when test="">
          </c:when>
          <c:otherwise>
          </c:otherwise>
      </c:choose>
      
    2. when可以出現一次或者多次,表示一個分支(相當於一個if語句)

      當test屬性值為true時,執行標籤體的內容

    3. otherwise可以出現0次或者一次,表示例外

  • forEach 標籤

    1. 語法

      <c:forEach items="">
      
      </c:forEach> 
      
    2. items指定要遍歷的集合或者陣列,可以使用el表示式來賦值

    3. var屬性指定繫結名,綁定範圍固定是pageContext

      該標籤每次從集合或者陣列中取一個元素,然後將該元素繫結到pageContext上

    4. varStatus屬性指定繫結名,綁定範圍固定是pageContext

      繫結值是一個特殊的物件,該物件提供了一些方法,可以通過這些方法來獲得當前遍歷的狀態:

      • getIndex():用來獲得當前正在被遍歷的元素的下標,下標從0開始
      • getCount():用來獲得當前是第幾次遍歷