日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JSP--JSTL標(biāo)簽庫(kù)舉例 詳解

 印度阿三17 2019-09-07

JSTL概述

JSTL(JSP Standard Tag Library),JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù),可以嵌入在jsp頁(yè)面中使用標(biāo)簽的形式完成業(yè)務(wù)邏輯等功能。jstl出現(xiàn)的目的同el一樣也是要代替jsp頁(yè)面中的腳本代碼。

JSTL標(biāo)準(zhǔn)標(biāo)簽庫(kù)有5個(gè)子庫(kù),但隨著發(fā)展,目前常使用的是它的核心庫(kù)。

標(biāo)簽庫(kù)標(biāo)簽庫(kù)的URI前綴
Corehttp://java./jsp/jstl/corec
I18Nhttp://java./jsp/jstl/fmtfmt
SQLhttp://java./jsp/jstl/sqlsql
XMLhttp://java./jsp/jstl/xmlx
Functionshttp://java./jsp/jstl/functionsfn

JSTL下載與導(dǎo)入

JSTL下載:
從Apache的網(wǎng)站下載JSTL的JAR包。進(jìn)入 “http://archive./dist/jakarta/taglibs/standard/binaries/”網(wǎng)址下載 JSTL的安裝包。jakarta-taglibs-standard-1.1.2.zip,然后將下載好的JSTL安裝包 進(jìn)行解壓,此時(shí),在lib目錄下可以看到兩個(gè)JAR文件,分別為jstl.jar和standard.jar。其中,jstl.jar文件包含JSTL規(guī)范中定義的接口和相關(guān)類(lèi),standard.jar文件包含用于 實(shí)現(xiàn)JSTL的.class文件以及JSTL中5個(gè)標(biāo)簽庫(kù)描述符文件(TLD)

JSTL導(dǎo)入:
將兩個(gè)jar包導(dǎo)入我們工程的lib中,使用jsp的taglib指令導(dǎo)入核心標(biāo)簽庫(kù)。

<%@ taglib uri="http://java./jsp/jstl/core" prefix="c"%>

JSTL核心庫(kù)的常用標(biāo)簽

標(biāo)簽描述
<c:out>用于在JSP中顯示數(shù)據(jù),就像<%= … >
<c:set>用戶(hù)保存數(shù)據(jù)
<c:remove>用于刪除數(shù)據(jù)
<c:catch>用來(lái)處理產(chǎn)生錯(cuò)誤的異常狀況,并且將錯(cuò)誤信息存儲(chǔ)起來(lái)
<c:if>與我們?cè)谝话愠绦蛑杏玫膇f一樣
<c:choose>本身只當(dāng)作<c:when>he <c:otherwise>的父標(biāo)簽
<c:when><c:choose>的子標(biāo)簽,用來(lái)判斷條件是否成立
<c:otherwise><c:choose>的子標(biāo)簽,接在<c:when>標(biāo)簽后,當(dāng)<c:when>標(biāo)簽判斷為false時(shí)被執(zhí)行
<c:import>檢索一個(gè)絕對(duì)或相對(duì)URL,然后將其內(nèi)容暴露給頁(yè)面
<c:forEach>基礎(chǔ)迭代標(biāo)簽,接收多種集合類(lèi)型
<c:forTokens>根據(jù)指定的分隔符來(lái)分隔內(nèi)容并迭代輸出
<c:param>用來(lái)給包含或重定向的頁(yè)面?zhèn)鬟f參數(shù)
<c:redirect>重定向至一個(gè)新的URL
<c:url>使用可選的查詢(xún)參數(shù)來(lái)創(chuàng)造一個(gè)URL
基礎(chǔ)標(biāo)簽<c:out>:

<c:out value=“數(shù)據(jù)” default=“默認(rèn)值”></c:out>
數(shù)據(jù)可以為常量值也可以是EL表達(dá)式
作用:將數(shù)據(jù)輸出給客戶(hù)端。

	<%
		request.setAttribute("str", "字符串");
	%>
	<h3>c:out</h3>
	<c:out value="哈哈"></c:out><br/>
	<c:out value="${str }" default="默認(rèn)值"></c:out>

頁(yè)面顯示:
在這里插入圖片描述

基礎(chǔ)標(biāo)簽c:set 和 c:remove 標(biāo)簽:
  • <c:set var=“鍵名” value=“數(shù)據(jù)” scope=“域”></c:set>
    作用:存儲(chǔ)數(shù)據(jù)到作用域?qū)ο笾?br>var:表示存儲(chǔ)的鍵名
    value:表示存儲(chǔ)的數(shù)據(jù)
    scope:表示要存儲(chǔ)的作用域?qū)ο髉age、request、session、application

  • <c:remove var=“鍵名” scope=“域”/>
    作用:刪除作用域中的指定鍵的數(shù)據(jù)
    var:表示要?jiǎng)h除的鍵的名字
    scope:表示要?jiǎng)h除的作用域(可選)
    注意:如果不指定作用域的情況使用該標(biāo)簽刪除數(shù)據(jù),會(huì)將四個(gè)作用域?qū)ο笾械姆弦蟮臄?shù)據(jù)全部刪除。

	<h3>c:set</h3>
	<c:set var="hello" value="hello pageContext" scope="page"></c:set>
 	<c:set var="hello" value="hello request" scope="request"></c:set>
 	<c:set var="hello" value="hello session" scope="session"></c:set>
 	<c:set var="hello" value="hello application" scope="application"></c:set>
 	<c:out value="${pageScope.hello}"></c:out>
 	
 	<h3>c:remove</h3>
 	<%-- 刪除page域中的 --%>
 	<c:remove var="hello" scope="page"/><br/>
 	<c:out value="${hello}"></c:out>

頁(yè)面顯示:
在這里插入圖片描述

邏輯標(biāo)簽<c:if> 和 <c:choose>:
 <c:if test="${表達(dá)式}">
	前端代碼
 </c:if>

作用:進(jìn)行邏輯判斷,相當(dāng)于java代碼的但分支判斷
注意:邏輯判斷標(biāo)簽需要依賴(lài)于EL的邏輯運(yùn)算,也就是表達(dá)式中涉及到數(shù)據(jù)必須從作用域中獲取。

<c:choose>
	<c:when test="">執(zhí)行內(nèi)容</c:when>
	<c:when test="">執(zhí)行內(nèi)容</c:when>
	.....
	<c:otherwise>執(zhí)行內(nèi)容</c:otherwise>
</c:choose>

作用:用來(lái)進(jìn)行多條的邏輯判斷,類(lèi)似java中的多分支語(yǔ)句
注意:條件成立只會(huì)執(zhí)行一次,都不成立則執(zhí)行otherwise

	<h3>c:if</h3>
	<c:set var="a" value="4"></c:set>
 	<c:if test="${a > 3}">
 		<b>今天天氣真好</b>
 	</c:if>
 	
 	<h3>c:choose</h3>
 	<c:set var="score" value="85"></c:set>
 	<c:choose>
 	<c:when test="${score>=90 }">
 		<i>獎(jiǎng)勵(lì)900元</i>
 	</c:when>
 	<c:when test="${score>=80 && score < 90 }">
 		<i>獎(jiǎng)勵(lì)800元</i>
 	</c:when>
 	<c:when test="${score>=70 && score < 80 }">
 		<i>獎(jiǎng)勵(lì)700元</i>
 	</c:when>
 	<c:otherwise>
 		<i>挨頓毒打</i>
 	</c:otherwise>
 </c:choose>

頁(yè)面顯示:
在這里插入圖片描述

循環(huán)標(biāo)簽<c:forEach>:
 <c:forEach begin="" end="" step="" varStatus="">
	循環(huán)體
</c:forEach>

作用:循環(huán)內(nèi)容進(jìn)行處理
使用:begin:聲明循環(huán)開(kāi)始位置
end:循環(huán)結(jié)束位置
step:步長(zhǎng)
varStatus:聲明變量記錄每次循環(huán)的數(shù)據(jù)(下標(biāo),次數(shù),是否是第一次循環(huán),是否是最后一次循環(huán))
$ {vs.index} – $ {vs.count} – $ {vs.first} – ${vs.last }
注意:數(shù)據(jù)存儲(chǔ)在作用域中,需要使用EL表達(dá)式。
items:聲明要遍歷的對(duì)象。結(jié)合EL表達(dá)式獲取對(duì)象。
var:聲明變量記錄每次循環(huán)的結(jié)果。存儲(chǔ)在作用域中,需要使用EL表達(dá)式獲取。

<h3>常量循環(huán)</h3>
	<c:forEach begin="0" end="4" step="1" varStatus="vs">
 		${vs.index}--${vs.count}--${vs.first}--${vs.last }<br/>
 	</c:forEach>
 	
 	<h3>動(dòng)態(tài)循環(huán)</h3>
 	<%
	 	ArrayList<String> list = new ArrayList<String>();
	 	list.add("a");
	 	list.add("b");
	 	list.add("c");
	 	list.add("d");
	 	request.setAttribute("list", list);
 	%>
 	<c:forEach items="${list}" var="str">
 		${str}<br/>
 	</c:forEach>
 	
 	<h3>遍歷map</h3>
 	<%
	 	HashMap<String,String> map = new HashMap<String,String>();
	 	map.put("一","哈哈");
	 	map.put("二", "嘿嘿");
	 	request.setAttribute("map", map);
 	%>
 	<c:forEach items="${map }" var="m">
 		${m.key }--${m.value }<br/>
 	</c:forEach>
 	
 	<h3>創(chuàng)建表格</h3>
 	<table border="1px">
 	<tr>
 		<td>課程名稱(chēng)</td>
 		<td>教師</td>
 		<td>價(jià)格</td>
 		<td>重要性</td>
 	</tr>
 	<c:forEach items="${list }" var="str">
 		<tr>
 			<td>${str }</td>
 			<td>${str }</td>
 			<td>${str }</td>
 			<td>${str }</td>
 		</tr>
 	</c:forEach>
 </table>

頁(yè)面顯示:
在這里插入圖片描述

來(lái)源:https://www./content-4-442701.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多