EL表示式與JSTL簡單入門
EL概述
EL(Express Lanuage)表示式可以嵌入在jsp頁面內部,減少jsp指令碼的編寫,EL出現的目的是要替代jsp頁面中指令碼的編寫。
簡單來說EL表示式就是讓程式設計師,簡化了程式碼的書寫量。在學EL表示式之前我們必須通過<%= %>來取出域中的資料,但這種方式 過於繁瑣,所以就誕生了EL表示式。
EL取出JSP四大域物件中儲存的資料
- pageContext域:${pageScope.key};
- request域:${requestScope.key};
- session域:${sessionScope.key};
- application域:${applicationScope.key};
EL從四個域中獲得某個值
寫法:${key};
例:如果在request域中儲存了一個名為"productList"的物件,我們不需要通過${requestScope.productList}取出相應的物件,只需要${productList}即可取出相應的物件。
相當於pageContext.findAttribute()從pageContext域,request域,session域,application域中獲取屬性,在某個域中獲取後將不在向後尋找.
JSTL概述
JSTL(JSP Standard Tag Library),JSP標準標籤庫,可以嵌入在jsp頁面中使用標籤的形式完成業務邏輯等功能。jstl出現的目的同el一樣也是要代替jsp頁面中的指令碼程式碼。JSTL標準標籤庫有5個子庫,但隨著發展,目前常使用的是他的核心庫。
JSTL五大子庫
Core (核心庫) 標籤庫的URI:http://java.sun.com/jsp/jstl/core 常用字首:c
I18N(國際化) 標籤庫的URI:http://java.sun.com/jsp/jstl/fmt 常用字首:fmt
SQL 標籤庫的URI:http://java.sun.com/jsp/jstl/sql 常用字首:sql
XML 標籤庫的URI:http://java.sun.com/jsp/jstl/xml 常用字首:x
Functions 標籤庫的URI:http://java.sun.com/jsp/jstl/functions 常用字首:fn
下載與匯入
下載:Apache的網站下載JSTL的JAR包。進入“http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”網址下載 JSTL的壓縮包。jakarta-taglibs-standard-1.1.2.zip
匯入:解壓後在lib目錄下可以看到兩個JAR檔案,分別為jstl.jar和standard.jar。其中,jstl.jar檔案包含JSTL規範中定義的介面和相關類,standard.jar檔案包含用於實現JSTL的.class檔案以及JSTL中5個標籤庫描述符檔案(TLD),將兩個檔案匯入專案中。
JSTL核心庫的使用
-
<c:if>標籤
1. 語法格式:
<c:if test="xxx" [var="xxx"] [scope="{page|request|session|application}"] >
執行體
</c:if>
2. 標籤屬性講解:
test屬性:用於設定邏輯表示式,當邏輯表示式為true時執行執行體
var屬性:用於指定邏輯表示式中變數的名字
scope屬性:用於指定var變數的作用範圍,預設值是page。
3.用法案例:
-
<c:forEach>標籤
兩種語法格式:
1.迭代集合物件:
<c:forEach items="xxx" [var="xxx"] [varStatus="xxx"] [begin="xxx"] [end="xxx"] [step="xxx"]>
迴圈體.....
</c:forEach>
2.迭代陣列:
<c:forEach begin="xxx" end="xxx" [var="xxx"] [varStatus="xxx"] [step="xxx"]>
迴圈體....
</c:forEach>
標籤屬性講解:
1.items屬性用於指定將要迭代的物件
2.var屬性用於指 將當前迭代到的元素儲存到page域中的名稱(可以通過${xxx}獲得物件)
3.varStatus屬性用於指定當前迭代狀態資訊的物件儲存到page域中的名稱
varStatus屬性可以獲取以下資訊:
count:表示元素在集合中的序號,從1開始
index:表示當前元素在集合中的索引,從0開始
first:表示當前是否為集合中的第一個元素
last:表示當前元素是否為集合中最後一個元素
4.begin屬性用於指定從集合中的第幾個元素開始迭代,begin的索引值從0開始
5.step屬性用於指定迭代的步長,即迭代的增長因子
用法案例:
迭代集合物件:
迭代陣列元素:
總結
在前端JSP頁面中會經常用到EL表示式,和JSTL標籤庫,EL表示式使得取出request域和其它域中資料變得極其方便,JSTL免去了<%= %>的繁瑣操作。我介紹的JSTL的兩個標籤是核心庫中最常用的兩個,它們兩個標籤可以解決大多數問題。當然JSTL標籤庫中的標籤遠不止這些,有興趣的小夥伴可以深入瞭解。
下面是博主的其他文章,喜歡的博友們點個關注,謝謝您的支援。