? ? EL介紹:EL(Expression Language)表達(dá)式語言目的是代替JSP頁面中的復(fù)雜代碼。
? ? EL語法:${變量名}
? ? JSTL介紹:JSTL標(biāo)準(zhǔn)標(biāo)簽庫(JavaServerPages Standard? Tag Library),JSTL通常會(huì)與EL表達(dá)式合作實(shí)現(xiàn)JSP頁面的編碼。
? ??JSTL開發(fā)準(zhǔn)備工作:在JSP頁面添加taglib指令:
????????????<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?為什么要使用JSTL標(biāo)簽
? ? 1.在jsp中不建議直接書寫Java代碼(規(guī)范性問題)
? ? 2.EL表達(dá)式雖然可以解決“不用書寫JAVA代碼”問題,但是對(duì)于復(fù)雜的數(shù)據(jù)(如:數(shù)組,集合等)取值會(huì)很麻煩
? ? 3.使用JSTL標(biāo)簽配合EL表達(dá)式能夠很好的解決取復(fù)雜類型數(shù)據(jù)的問題,簡化代碼書寫
? ?????????????????????????????JSTL常用標(biāo)簽介紹
通用標(biāo)簽? ? set、out、remove? ??
????????set標(biāo)簽:將值保存到指定范圍里
????????????<c:set var="username" value="楊凱飛" scope="request"></c:set>
? ? ? ? out標(biāo)簽:將結(jié)果輸出顯示
? ? ? ????? <c:out value="${username}"></c:out>
? ? ? ? remove標(biāo)簽:刪除指定域內(nèi)數(shù)據(jù)
? ? ? ????? <c:remove var="username" scope="request"/>
? ? ? ? c為taglib指令中的prefix,set、out、remove為標(biāo)簽名,var是鍵值,value是值,scope是指定保存的范圍(Page、Request、Session、Application)
? ? ??? ????Page范圍:屬性只在當(dāng)前頁有效,如果跳轉(zhuǎn)到其他頁面,則需要重新實(shí)例化,jsp頁面操作資源時(shí)使用。
? ? ? ??? ??Request范圍:屬性只保存在一次服務(wù)器跳轉(zhuǎn)中
? ? ? ??? ??Session范圍:屬性值保存在一次會(huì)話中,可以使用任意方式連接其他頁面,則此對(duì)象值實(shí)例化一次
? ? ? ??? ??Application范圍:屬性公有,此對(duì)象在整個(gè)服務(wù)器只實(shí)例化一次
條件標(biāo)簽? ? if、choose
?????????if標(biāo)簽:條件標(biāo)簽
? ? ? ? ? ??<c:if test="${username=='楊凱飛'}">
? ? ? ? ? ? ? ? 這個(gè)人是帥哥
? ? ? ? ????</c:if>
? ? ? ? ? ? ? ? test為判斷條件
? ??choose標(biāo)簽:
<c:choose>
? ? <c:when test="${username=='楊凱飛'}">
? ? ? ? 這個(gè)人是帥哥
? ? </c:when>
? ? <c:when test="${username=='霍華德'}">
? ? ? ? 這個(gè)人是籃球明星
? ? </c:when>
? ? <c:otherwise>
? ? ? ? 這個(gè)人是個(gè)傻子!!
? ? </c:otherwise>
</c:choose>
多個(gè)條件判斷,when為判斷條件,如果以上條件都不成立則執(zhí)行otherwise。
迭代標(biāo)簽? ? forEach
<c:forEach items="${list}" var="Map">
? ? ${Map.aa}<br>${Map.bb}<br>
</c:forEach>
這種方法類似于for(數(shù)據(jù)類型 變量名:集合或者數(shù)據(jù))