EL表達(dá)式與JSTL簡單入門
更多博文請關(guān)注:聽到微笑的博客
EL概述
EL(Express Lanuage)表達(dá)式可以嵌入在jsp頁面內(nèi)部,減少jsp腳本的編寫,EL出現(xiàn)的目的是要替代jsp頁面中腳本的編寫。
簡單來說EL表達(dá)式就是讓程序員,簡化了代碼的書寫量。在學(xué)EL表達(dá)式之前我們必須通過<%= %>來取出域中的數(shù)據(jù),但這種方式 過于繁瑣,所以就誕生了EL表達(dá)式。
EL取出JSP四大域?qū)ο笾斜4娴臄?shù)據(jù)
- pageContext域:${pageScope.key};
- request域:${requestScope.key};
- session域:${sessionScope.key};
- application域:${applicationScope.key};
EL從四個域中獲得某個值
寫法:${key};
例:如果在request域中存儲了一個名為"productList"的對象,我們不需要通過${requestScope.productList}取出相應(yīng)的對象,只需要${productList}即可取出相應(yīng)的對象。
相當(dāng)于pageContext.findAttribute()從pageContext域,request域,session域,application域中獲取屬性,在某個域中獲取后將不在向后尋找.
JSTL概述
JSTL(JSP Standard Tag Library),JSP標(biāo)準(zhǔn)標(biāo)簽庫,可以嵌入在jsp頁面中使用標(biāo)簽的形式完成業(yè)務(wù)邏輯等功能。jstl出現(xiàn)的目的同el一樣也是要代替jsp頁面中的腳本代碼。JSTL標(biāo)準(zhǔn)標(biāo)簽庫有5個子庫,但隨著發(fā)展,目前常使用的是他的核心庫。
JSTL五大子庫
Core (核心庫) 標(biāo)簽庫的URI:http://java.sun.com/jsp/jstl/core 常用前綴:c
I18N(國際化) 標(biāo)簽庫的URI:http://java.sun.com/jsp/jstl/fmt 常用前綴:fmt
SQL 標(biāo)簽庫的URI:http://java.sun.com/jsp/jstl/sql 常用前綴:sql
XML 標(biāo)簽庫的URI:http://java.sun.com/jsp/jstl/xml 常用前綴:x
Functions 標(biāo)簽庫的URI:http://java.sun.com/jsp/jstl/functions 常用前綴:fn
下載與導(dǎo)入
下載:Apache的網(wǎng)站下載JSTL的JAR包。進(jìn)入“http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”網(wǎng)址下載 JSTL的壓縮包。jakarta-taglibs-standard-1.1.2.zip
導(dǎo)入:解壓后在lib目錄下可以看到兩個JAR文件,分別為jstl.jar和standard.jar。其中,jstl.jar文件包含JSTL規(guī)范中定義的接口和相關(guān)類,standard.jar文件包含用于實(shí)現(xiàn)JSTL的.class文件以及JSTL中5個標(biāo)簽庫描述符文件(TLD),將兩個文件導(dǎo)入項(xiàng)目中。
JSTL核心庫的使用
-
<c:if>標(biāo)簽
1. 語法格式:
<c:if test="xxx" [var="xxx"] [scope="{page|request|session|application}"] >
執(zhí)行體
</c:if>
2. 標(biāo)簽屬性講解:
test屬性:用于設(shè)置邏輯表達(dá)式,當(dāng)邏輯表達(dá)式為true時執(zhí)行執(zhí)行體
var屬性:用于指定邏輯表達(dá)式中變量的名字
scope屬性:用于指定var變量的作用范圍,默認(rèn)值是page。
3.用法案例:
-
<c:forEach>標(biāo)簽
兩種語法格式:
1.迭代集合對象:
<c:forEach items="xxx" [var="xxx"] [varStatus="xxx"] [begin="xxx"] [end="xxx"] [step="xxx"]>
循環(huán)體.....
</c:forEach>
2.迭代數(shù)組:
<c:forEach begin="xxx" end="xxx" [var="xxx"] [varStatus="xxx"] [step="xxx"]>
循環(huán)體....
</c:forEach>
標(biāo)簽屬性講解:
1.items屬性用于指定將要迭代的對象
2.var屬性用于指 將當(dāng)前迭代到的元素保存到page域中的名稱(可以通過${xxx}獲得對象)
3.varStatus屬性用于指定當(dāng)前迭代狀態(tài)信息的對象保存到page域中的名稱
varStatus屬性可以獲取以下信息:
count:表示元素在集合中的序號,從1開始
index:表示當(dāng)前元素在集合中的索引,從0開始
first:表示當(dāng)前是否為集合中的第一個元素
last:表示當(dāng)前元素是否為集合中最后一個元素
4.begin屬性用于指定從集合中的第幾個元素開始迭代,begin的索引值從0開始
5.step屬性用于指定迭代的步長,即迭代的增長因子
用法案例:
迭代集合對象:
迭代數(shù)組元素:
總結(jié)
在前端JSP頁面中會經(jīng)常用到EL表達(dá)式,和JSTL標(biāo)簽庫,EL表達(dá)式使得取出request域和其它域中數(shù)據(jù)變得極其方便,JSTL免去了<%= %>的繁瑣操作。我介紹的JSTL的兩個標(biāo)簽是核心庫中最常用的兩個,它們兩個標(biāo)簽可以解決大多數(shù)問題。當(dāng)然JSTL標(biāo)簽庫中的標(biāo)簽遠(yuǎn)不止這些,有興趣的小伙伴可以深入了解。
下面是博主的其他文章,喜歡的博友們點(diǎn)個關(guān)注,謝謝您的支持。
Validate插件的自定義驗(yàn)證方法入門(結(jié)合Ajax實(shí)現(xiàn)用戶名的數(shù)據(jù)庫查重)

浙公網(wǎng)安備 33010602011771號