JSTL-鏍稿績鏍囩搴?鍗氬-浜戞爾紺懼尯-闃塊噷浜?
JSTL 鍏ㄥ悕涓?/span>Java Server Pages Standard Tag Library锛?/span>JSP Standard Tag Library锛?/span>,瀹冪殑涓枃鍚嶇О涓?/span>JSP鏍囧噯鏍囩鍑芥暟搴撱€?/span>聽Web 紼嬪簭寮€鍙戜漢鍛樿兘澶熷埄鐢?/span>JSTL鍜?/span>EL鏉ュ紑鍙?/span>Web紼嬪簭锛屽彇浠d紶緇熺洿鎺ュ湪欏甸潰涓婂祵鍏?/span>Java紼嬪簭锛?/span>Scripting锛夌殑鍋氭硶锛屼互鎻愰珮紼嬪簭鍙鎬с€佺淮鎶ゆ€у拰鏂逛究鎬с€?/span>聽聽
JSTL鏄竴涓爣鍑嗙殑宸插埗瀹氬ソ鐨勬爣絳懼簱锛屽彲浠ュ簲鐢ㄤ簬鍚勭棰嗗煙锛屽锛氬熀鏈緭鍏ヨ緭鍑恒€佹祦紼嬫帶鍒躲€佸驚鐜€?/span>XML鏂囦歡鍓栨瀽銆佹暟鎹簱鏌ヨ鍙婂浗闄呭寲鍜屾枃瀛楁牸寮忔爣鍑嗗寲鐨勫簲鐢ㄧ瓑銆?/span>
JSTL鎵€鎻愪緵鐨勬爣絳懼嚱鏁板簱涓昏鍒嗕負浜斿ぇ綾夥細 锛?/span>1锛夋牳蹇冩爣絳懼簱(Core tag library)
锛?/span>2锛?/span>I18N鏍煎紡鏍囩搴?(I18N-capable formatting tag library)
锛?/span>3锛?/span>SQL鏍囩搴?(SQL tag library)
锛?/span>4锛?/span>XML鏍囩搴?(XML tag library)
锛?/span>5锛夊嚱鏁版爣絳懼簱(Functions tag library)
聽
JSTL 鍓嶇紑 URI 鏍稿績鏍囩搴?/span>
c https://java.sun.com/jsp/jstl/core I18N鏍煎紡鏍囩搴?/span>
fmt https://java.sun.com/jsp/jstl/xml SQL鏍囩搴?/span>
sql https://java.sun.com/jsp/jstl/sql XML鏍囩搴?/span>
xml https://java.sun.com/jsp/jstl/fmt 鍑芥暟鏍囩搴?/span>
fn https://java.sun.com/jsp/jstl/functions 鑻ヨ鍦?/span>JSP緗戦〉涓嬌鐢?/span>JSTL锛屼竴瀹氳鍏堝仛涓嬮潰榪欒澹版槑锛?/span>
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>聽 聽 鏍稿績鏍囩搴?/span>(Core tag library)
q聽聽聽聽聽聽聽聽閫氱敤鏍稿績鏍囩锛?/span><c:out>銆?/span><c:set>銆?/span><c:remove>銆?/span><c:catch>銆?/span>
q聽聽聽聽聽聽聽聽鏉′歡鎺у埗鏍囩锛?/span><c:if>銆?/span><c:choose>銆?/span><c:when>銆?/span>
<c:otherwise>銆?/span>
q聽聽聽聽聽聽聽聽寰幆鎺у埗鏍囩锛?/span><c:forEach>銆?/span><c:forTokens>銆?/span>
q聽聽聽聽聽聽聽聽URL鐩稿叧鏍囩锛?/span><c:import>銆?/span><c:url>銆?/span><c:redirect>銆?/span><c:param>銆?/span>
聽 <c:out> <c:out>涓昏鐢ㄦ潵鏄劇ず鏁版嵁鐨勫唴瀹癸紝灝卞儚鏄?/span><%= scripting-language %>
涓€鏍鳳紝渚嬪锛?/span>Hello ! <c:out value="${username}" />
璿硶 璿硶1锛氭病鏈夋湰浣?/span>(body)鍐呭
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] /> 璿硶2锛氭湁鏈綋鍐呭 <c:out value="value" [escapeXml="{true|false}"]> default value </c:out>
灞炴€у悕縐?/span>
璿存槑 EL 綾誨瀷 蹇呴』 榛樿鍊?/span>
value 闇€瑕佹樉紺哄嚭鏉ョ殑鍊?/span>
Y Object 鏄?/span>
鏃?/span>
default 濡傛灉value鐨勫€間負null鍒欐樉紺?/span>default鐨勫€?/span>
Y Object 鍚?/span>
鏃?/span>
escapeXml 鏄惁杞崲鐗規畩瀛楃锛屽锛?/span><杞崲鎴?/span><
Y boolean 鍚?/span>
true 聽 娉ㄦ剰 琛ㄦ牸涓殑EL瀛楁锛岃〃紺烘灞炴€х殑鍊兼槸鍚﹀彲浠ヤ負EL琛ㄨ揪寮忥紝渚嬪锛?/span>Y琛ㄧずattribute
= "${琛ㄨ揪寮?/span>}"涓虹鍚堣娉曠殑锛?/span>N鍒欏弽涔嬨€?/span>
聽 Null
鍜岄敊璿鐞?/span>
鍋囪嫢
value涓?/span>null锛屼細鏄劇ずdefault鐨勫€鹼紱鍋囪嫢娌℃湁璁懼畾default鐨勫€鹼紝鍒欎細鏄劇ず涓€涓┖鐨勫瓧絎︿覆銆?/span>
璿存槑 涓€鑸潵璿達紝<c:out>榛樿浼氬皢<銆?/span>>銆佲€欍€佲€? 鍜?/span>& 杞崲涓?<銆?/span>>銆?/span>'銆?/span>"鍜?&銆?/span>
鍋囪嫢涓嶆兂杞崲鏃訛紝鍙渶瑕佽瀹?/span><c:out>鐨?/span>escapeXml灞炴€т負fasle灝卞彲浠ヤ簡銆?/span>
鑼冧緥 <c:out value="Hello JSP 2.0 !! " /> <c:out value="${ 3 + 5 }" /> <c:out value="${ param.data }" default="No Data" /> <c:out value="<p>鏈夌壒孌婂瓧絎?/span></p>" />
<c:out value="<p>鏈夌壒孌婂瓧絎?/span></p>" escapeXml="false" />
1锛庡湪緗戦〉涓婃樉紺?/span>Hello JSP 2.0 !!
锛?/span>
2锛庡湪緗戦〉涓婃樉紺?/span>8锛?/span>
3锛庡湪緗戦〉涓婃樉紺虹敱紿椾綋浼犻€佽繃鏉ョ殑data鍙傛暟涔嬪€鹼紝鍋囪嫢娌℃湁data鍙傛暟锛屾垨data鍙傛暟鐨勫€間負null鏃訛紝鍒欑綉欏典笂浼氭樉紺?/span>No
Data锛?/span>
4锛庡湪緗戦〉涓婃樉紺衡€?/span><p>鏈夌壒孌婂瓧絎?/span></p>鈥濓紱
5锛庡湪緗戦〉涓婃樉紺衡€滄湁鐗規畩瀛楃鈥濄€?/span>
聽 聽 <c:set> <c:set>涓昏鐢ㄦ潵灝嗗彉閲忓偍瀛樿嚦JSP鑼冨洿涓垨鏄?/span>JavaBean鐨勫睘鎬т腑銆?/span>
璿硶 璿硶1锛氬皢value
鐨勫€煎偍瀛樿嚦鑼冨洿涓?/span>scope鐨?varName鍙橀噺涔嬩腑
<c:set value="value" var="varName" [scope="{ page|request|session|application }"]/> 璿硶2锛氬皢鏈綋鍐呭鐨勬暟鎹偍瀛樿嚦鑼冨洿涓?/span>scope鐨?varName鍙橀噺涔嬩腑
<c:set var="varName" [scope="{ page|request|session|application }"]> 鈥?鏈綋鍐呭 </c:set> 璿硶3锛?/span>灝?/span>value
鐨勫€煎偍瀛樿嚦target
瀵矽薄鐨勫睘鎬т腑
< c:set value="value" target="target" property="propertyName" /> 璿硶4锛?/span>
灝嗘湰浣撳唴瀹圭殑鏁版嵁鍌ㄥ瓨鑷?/span>target
瀵矽薄鐨勫睘鎬т腑
<c:set target="target" property="propertyName"> 鈥?鏈綋鍐呭 </c:set> 灞炴€?/span>
鍚嶇О 璿存槑 EL 綾誨瀷 蹇呴』 榛樿鍊?/span>
value 瑕佽鍌ㄥ瓨鐨勫€?/span>
Y Object 鍚?/span>
鏃?/span>
var 嬈插瓨鍏ョ殑鍙橀噺鍚嶇О N String 鍚?/span>
鏃?/span>
scopevar 鍙橀噺鐨?/span>JSP鑼冨洿
N String 鍚?/span>
page target 涓轟竴JavaBean鎴?/span>java.util.Map瀵矽薄
Y Object 鍚?/span>
鏃?/span>
property 鎸囧畾target瀵矽薄鐨勫睘鎬?/span>
Y String 鍚?/span>
鏃?/span>
鑼冧緥 <c:set var="number" scope="request" value="${1 + 1}" /> <c:set var="number" scope="session" /> ${3 + 5} </c:set> <c:set var="number" scope="request" value="${ param.number }" /> <c:set target="User" property="name" value="${ param.Username}" /> 1锛庡皢2瀛樺靉Request鑼冨洿鐨?/span>number鍙橀噺涓紱
2锛庡皢8瀛樺靉Session鑼冨洿鐨?/span>number鍙橀噺涓紱<c:set>鏄妸鏈綋(body)榪愮畻鍚庣殑緇撴灉鏉ュ綋鍋?/span>value鐨勫€箋€?/span>
3锛庡亣鑻?/span>${param.number}涓?/span>null鏃訛紝鍒欑Щ闄?/span>Request鑼冨洿鐨?/span>number鍙橀噺锛涜嫢${param.number}涓嶄負null鏃訛紝鍒欏皢
${param.number}鐨勫€煎瓨鍏?/span>Request鑼冨洿鐨?/span>number鍙橀噺涓紱
4锛庡亣鑻?/span>${param.Username}涓?/span>null鏃訛紝鍒欒瀹?/span>User(JavaBean)鐨?/span>name灞炴€т負null锛涜嫢涓嶄負
null
鏃訛紝鍒欏皢 ${param.Username}鐨勫€煎瓨鍏?/span>User(JavaBean)鐨?/span>name灞炴€?/span>(setter鏈哄埗)銆?/span>
娉ㄦ剰 涓婅堪鑼冧緥鐨?/span>3.涓紝鍋囪嫢${param.number}涓?/span>null鏃訛紝鍒欒〃紺虹Щ闄?/span>Request鑼冨洿鐨?/span>number鍙橀噺銆?/span>
<c:remove> <c:remove>涓昏鐢ㄦ潵縐婚櫎鍙橀噺銆?/span>
璿硶 <c:remove var="varName" [scope="{ page|request|session|application }"] /> 灞炴€?/span>
鍚嶇О 璿存槑 EL 綾誨瀷 蹇呴』 榛樿鍊?/span>
var 嬈茬Щ闄ょ殑鍙橀噺鍚嶇О N String 鏄?/span>
鏃?/span>
scope var鍙橀噺鐨?/span>JSP鑼冨洿
N String 鍚?/span>
page 璿存槑 <c:remove>蹇呴』瑕佹湁var灞炴€э紝鍗寵琚Щ闄ょ殑灞炴€у悕縐幫紝scope鍒欏彲鏈夊彲鏃狅紝渚嬪锛?/span>
<c:remove var="number" scope="session" /> 灝?/span>number鍙橀噺浠?/span>Session鑼冨洿涓Щ闄ゃ€傝嫢鎴戜滑涓嶈瀹?/span>scope锛屽墶<c:remove>灝嗕細浠?/span>Page銆?/span>
Request銆?/span>Session鍙?/span>Application涓『搴忓鎵炬槸鍚﹀瓨鍦ㄥ悕縐頒負number鐨勬暟鎹紝鑻ヨ兘鎵懼埌鏃訛紝鍒欏皢瀹冪Щ闄ゆ帀锛屽弽涔嬪墶涓嶄細鍋氫換浣曠殑浜嬫儏銆?/span>
娉ㄦ剰锛氬綋涓嶆寚瀹歴cope鏃訛紝鍥瀝emove鎺変粠page鍒癮pplication鐨剉ar鎸囧畾鐨勫彉閲忋€?/span>
<c:catch> <c:catch>涓昏鐢ㄦ潵澶勭悊浜х敓閿欒鐨勫紓甯哥姸鍐碉紝騫朵笖灝嗛敊璿俊鎭偍瀛樿搗鏉ャ€?/span>
璿硶 <c:catch [var="varName"] > 鈥?嬈叉姄鍙栭敊璿殑閮ㄥ垎 </c:catch> 灞炴€?/span>
鍚嶇О 璿存槑 EL 綾誨瀷 蹇呴』 榛樿鍊?/span>
var 鐢ㄦ潵鍌ㄥ瓨閿欒淇℃伅鐨勫彉閲?/span>
N String 鍚?/span>
鏃?/span>
璿存槑 <c:catch>涓昏灝嗗彲鑳藉彂鐢熼敊璿殑閮ㄥ垎鏀懼湪<c:catch>鍜?/span></c:catch>涔嬮棿銆傚鏋滅湡鐨勫彂鐢熼敊
璿紝鍙互灝嗛敊璿俊鎭偍瀛樿嚦varName鍙橀噺涓紝渚嬪锛?/span>
<c:catch var="message"> 锛?
//鍙兘鍙戠敓閿欒鐨勯儴鍒?/span>
</c:catch> 鍙﹀锛屽綋閿欒鍙戠敓鍦?/span><c:catch>鍜?/span></c:catch>涔嬮棿鏃訛紝鍒欏彧鏈?/span><c:catch>鍜?/span></c:catch>涔嬮棿鐨勭▼搴?/span>浼氳涓蹇界暐锛屼絾鏁翠釜緗戦〉涓嶄細琚腑姝€?/span>聽
<c:if> <c:if>鐨勭敤閫斿氨鍜屾垜浠竴鑸湪紼嬪簭涓敤鐨?/span>if涓€鏍楓€?/span>
璿硶 璿硶1锛氭病鏈夋湰浣撳唴瀹?/span>(body)
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]/> 璿硶2锛氭湁鏈綋鍐呭 <c:if test="testCondition" [var="varName"][scope="{page|request|session|application}"]> 鍏蜂綋鍐呭 </c:if> 灞炴€?/span>
鍚嶇О 璿存槑 EL 綾誨瀷 蹇呴』 榛樿鍊?/span>
Test 濡傛灉琛ㄨ揪寮忕殑緇撴灉涓?/span>true,鍒欐墽琛屾湰浣撳唴瀹癸紝false鍒欑溮鍙?/span>
Y boolean 鏄?/span>
鏃?/span>
var 鐢ㄦ潵鍌ㄥ瓨test榪愮畻鍚庣殑緇撴灉锛屽嵆true鎴?/span>false
N String 鍚?/span>
鏃?/span>
scope var鍙橀噺鐨?/span>JSP鑼冨洿
N String 鍚?/span>
page <c:choose> <c:choose>鏈韓鍙綋鍋?/span><c:when>
鍜?/span><c:otherwise>
鐨勭埗鏍囩銆?/span>
璿硶 <c:choose> 鏈綋鍐呭( <when>鍜?<otherwise> ) </c:choose> 闄愬埗 <c:choose>鐨勬湰浣撳唴瀹瑰彧鑳芥湁锛?/span>
路絀虹櫧 路1鎴栧涓?<c:when> 路0鎴栧涓?<c:otherwise> 璿存槑 鑻ヤ嬌鐢?/span><c:when>鍜?/span><c:otherwise>鏉ュ仛嫻佺▼鎺у埗鏃訛紝涓よ€呴兘蹇呴』涓?/span><c:choose>鐨勫瓙鏍囩.
<c:when> <c:when>鐨勭敤閫斿氨鍜屾垜浠竴鑸湪紼嬪簭涓敤鐨?/span>when涓€鏍楓€?/span>
璿硶 <c:when test="testCondition" > 鏈綋鍐呭 </c:when> 灞炴€?/span>
鍚嶇О 璿存槑 EL 綾誨瀷 蹇呴』 榛樿鍊?/span>
Test 濡傛灉琛ㄨ揪寮忕殑緇撴灉涓?/span>true锛屽墶鎵ц鏈綋鍐呭锛?/span>false鍒欑溮鍙?/span>
Y boolean 鏄?/span>
鏃?/span>
聽 闄愬埗
<c:when>蹇呴』鍦?/span><c:choose>鍜?/span></c:choose>涔嬮棿
鍦ㄥ悓涓€涓?/span><c:choose>涓椂锛?/span><c:when>蹇呴』鍦?/span><c:otherwise>涔嬪墠
璿存槑 <c:when>蹇呴』鏈?/span>test灞炴€э紝褰?/span>test涓殑琛ㄨ揪寮忕粨鏋滀負true鏃訛紝鍒欎細鎵ц鏈綋鍐呭锛涘鏋滀負
false鏃訛紝鍒欎笉浼氭墽琛屻€?/span>
聽 <c:otherwise> 鍦ㄥ悓涓€涓?
<c:choose>涓紝褰撴墍鏈?<c:when>鐨勬潯浠墮兘娌℃湁鎴愮珛鏃訛紝鍒欐墽琛?/span><c:otherwise>鐨?/span>
鏈綋鍐呭銆?/span>
璿硶 <c:otherwise> 鏈綋鍐呭 </c:otherwise> <c:forEach>涓哄驚鐜帶鍒訛紝瀹冨彲浠ュ皢闆嗗悎(Collection)涓殑鎴愬憳寰簭嫻忚涓€閬嶃€傝繍浣滄柟寮忎負褰?/span>
鏉′歡絎﹀悎鏃訛紝灝變細鎸佺畫閲嶅鎵ц<c:forEach>鐨勬湰浣撳唴瀹廣€?/span>
璿硶1锛氳凱浠d竴闆嗗悎瀵矽薄涔嬫墍鏈夋垚鍛?/span>
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"][end="end"] [step="step"]> 鏈綋鍐呭 < /c:forEach> 璿硶2锛氳凱浠f寚瀹氱殑嬈℃暟 <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]> 鏈綋鍐呭 </c:forEach> 闄愬埗 路鍋囪嫢鏈?/span>begin灞炴€ф椂锛?/span>begin蹇呴』澶т簬絳変簬
0
路鍋囪嫢鏈?/span>end灞炴€ф椂锛屽繀欏誨ぇ浜?/span>begin
路鍋囪嫢鏈?/span>step灞炴€ф椂锛?/span>step蹇呴』澶т簬絳変簬0
Null
鍜岄敊璿鐞?/span>
路鍋囪嫢items涓?/span>null
鏃訛紝鍒欒〃紺轟負涓€絀虹殑闆嗗悎瀵矽薄
路鍋囪嫢begin澶т簬鎴栫瓑浜?/span>items鏃訛紝鍒欒凱浠d笉榪愮畻
<html> <c:forEach>闄や簡鏀寔鏁扮粍涔嬪锛岃繕鏈夋爣鍑咼2SE 鐨勯泦鍚堢被鍨嬶紝渚嬪锛欰rrayList銆丩ist銆丩inkedList銆乂ector銆丼tack鍜孲et 絳夌瓑锛涘彠澶栬繕鍖呮嫭java.util.Map 綾葷殑瀵矽薄.
聽 涓婅堪鑼冧緥涓紝鎴戜滑騫舵病鏈夋墽琛屾祻瑙堥泦鍚堝璞★紝鍙槸璁懼畾begin 鍜宔nd 灞炴€х殑鍊鹼紝榪欐牱瀹冨氨 begin涓昏鐢ㄦ潵璁懼畾鍦ㄩ泦鍚堝璞′腑寮€濮嬬殑浣嶇疆(娉ㄦ剰锛氱涓€涓綅緗負0)锛沞nd 鐢ㄦ潵璁懼畾緇撴潫鐨勪綅緗紱鑰宻tep 鍒欐槸鐢ㄦ潵璁懼畾鐜板湪鎸囧埌鐨勬垚鍛樺拰涓嬩竴涓皢琚寚鍒版垚鍛樹箣闂寸殑闂撮殧. 鍙﹀锛?/span><c:forEach>榪樻彁渚?/span>varStatus灞炴€э紝涓昏鐢ㄦ潵瀛樻斁鐜板湪鎸囧埌涔嬫垚鍛樼殑鐩稿叧淇℃伅銆備緥濡傦細
varStatus="s"锛岄偅涔堝皢浼氭妸淇℃伅瀛樻斁鍦ㄥ悕縐頒負s鐨勫睘鎬у綋涓€?/span>varStatus灞炴€ц繕鏈夊彠澶栧洓涓睘鎬э細index銆?/span>count銆?/span>first鍜?/span>last锛屽畠浠悇鑷唬琛ㄧ殑鎰忎箟濡傝〃锛?/span>
灞炴€?/span>
綾誨瀷 鎰忎箟 index number 鐜板湪鎸囧埌鎴愬憳鐨勭儲寮?/span>
count number 鎬誨叡宸茬粡鎸囧埌鎴愬憳鐨勬€繪暟 first boolean 鐜板湪鎸囧埌鐨勬垚鍛樻槸鍚︿負絎竴涓垚鍛?/span>
last boolean 鐜板湪鎸囧埌鐨勬垚鍛樻槸鍚︿負鏈€鍚庝竴涓垚鍛?/span>
鍙互浣跨敤varStatus 灞炴€у彇寰楀驚鐜鍦ㄦ祻瑙堜箣鎴愬憳鐨勪俊鎭紝涓嬮潰涓轟竴涓畝鍗曠殑鑼冧緥锛?/span>聽
<html> 榪樻湁涓€涓緥瀛愶紝瑕佽幏鍙栵細https://localhost:8080/t/index.jsp?a=123&b=256&com=297涓殑鍙傛暟鍒楄〃鎸夊涓? 閿甤om锛?97 鍙互緇撳悎EL琛ㄥ崟寮忓疄鐜幫細 <c:forTokens>聽 <c:forTokens> 鐢ㄦ潵嫻忚涓€瀛楃涓蹭腑鎵€鏈夌殑鎴愬憳锛屽叾鎴愬憳鏄敱瀹氫箟絎﹀彿(delimiters)鎵€鍒嗛殧鐨勩€?/span>
銆€銆€銆€銆€銆€銆€銆€銆€delims="delimiters" 銆€銆€銆€銆€銆€銆€銆€銆€[var="varName"] 銆€銆€銆€銆€銆€銆€銆€銆€[varStatus="varStatusName"] 銆€銆€銆€銆€銆€銆€銆€銆€[begin="begin"] 銆€銆€銆€銆€銆€銆€銆€銆€[end="end"] 銆€銆€銆€銆€銆€銆€銆€銆€[step="step"]> 璿存槑 <c:forTokens聽items="A,B,C,D,E"聽delims=","聽var="item"聽> 聽 涓婇潰鑼冧緥鎵ц鍚庯紝灝嗕細鍦ㄧ綉欏典腑杈撳嚭ABCDE銆傚畠浼氭妸絎﹀彿鈥?鈥濆綋鍋氬垎鍓茬殑鏍囪锛屾媶鎴? 涓儴鍒嗭紝涔熷氨鏄墽琛屽驚鐜? 嬈★紝浣嗘槸騫舵病鏈夊皢A,B,C,D,E 涓殑鈥?鈥濇樉紺哄嚭鏉ャ€俰tems 涔熷彲浠ユ斁鍏L 鐨勮〃杈懼紡锛屽涓嬶細 <% 聽 榪欎釜鑼冧緥灝嗕細鍦ㄧ綉欏典笂鎵撳嵃1234567899锛屼篃灝辨槸鎶?23-456-7899浠モ€?鈥濆綋鍋氬垎鍓叉爣璁幫紝灝嗗瓧絎︿覆鎷嗕負3 浠斤紝姣忔墽琛屼竴嬈″驚鐜氨灝嗘祻瑙堢殑閮ㄥ垎鏀懼埌鍚嶇О涓篿tem 鐨勫睘鎬у綋涓€俤elims 涓嶅彧鎸囧畾涓€縐嶅瓧絎︽潵鍒嗗壊瀛楃涓詫紝瀹冭繕鍙互涓€嬈¤瀹氬涓垎鍓插瓧絎︿覆鐢ㄧ殑瀛楃銆傚涓嬮潰榪欎釜鑼冧緥锛?/span>
姝よ寖渚嬩細鍦ㄧ綉欏佃緭鍑篈BCDE锛屼篃灝辨槸璿達紝delims 鍙互涓€嬈¤瀹氭墍鏈夋兂褰撳仛鍒嗗壊瀛楃涓茬敤鐨勫瓧絎︺€傚叾瀹炵敤<c:forEach>涔熻兘鍋氬埌鍒嗗壊瀛楃涓詫紝鍐欐硶濡備笅锛?/span>
涓婅堪鑼冧緥鍚屾牱涔熶細鍦ㄧ綉欏佃緭鍑篈BCDE銆?lt;c:forEach>騫舵病鏈塪elims榪欎釜灞炴€э紝鍥犳<c:forEach>鏃犳硶璁懼畾鍒嗗壊瀛楃涓茬敤鐨勫瓧絎︼紝鑰?lt;c:forEach>鍒嗗壊瀛楃涓茬敤鐨勫瓧絎﹀彧鏈夆€?鈥濓紝榪欏拰浣跨敤<c:forTokens>锛宒elims 灞炴€ц涓衡€?鈥濈殑緇撴灉鐩稿悓銆傛墍浠ュ鏋滀嬌鐢?lt;c:forTokens>鏉ュ垎鍓插瓧絎︿覆锛屽姛鑳藉拰寮規€т笂浼氭瘮浣跨敤<c:forEach>鏉ュ緱杈冨ぇ銆?/span>
鍘熷笘鍦板潃锛?a target="_blank" href="https://www.cnblogs.com/Fskjb/archive/2009/07/05/1517164.html">https://www.cnblogs.com/Fskjb/archive/2009/07/05/1517164.html
Core 鏍囩搴擄紝鍙堣縐頒負鏍稿績鏍囩搴擄紝璿ユ爣絳懼簱鐨勫伐浣滄槸瀵逛簬 JSP 欏甸潰涓€鑸鐞嗙殑灝佽銆傚湪璿ユ爣絳懼簱涓殑鏍囩涓€鍏辨湁 14 涓紝琚垎涓轟簡鍥涚被锛屽垎鍒槸锛?/span>
<c:forEach>
<head>
<title>CH7聽-聽Core_forEach.jsp</title>
</head>
<body>
<h2><c:out聽value="<c:forEach>聽鐨勭敤娉?聽/></h2>
<%
String聽atts[]聽=聽new聽String聽[5];
atts[0]="hello";
atts[1]="this";
atts[2]="is";
atts[3]="a";
atts[4]="pen";
request.setAttribute("atts",聽atts);
%>
<c:forEach聽items="${atts}"聽var="item"聽>
${item}</br>
</c:forEach>
</body>
</html>
<c:forEach>騫朵笉鍙槸鐢ㄦ潵嫻忚闆嗗悎瀵矽薄鑰屽凡锛岃鑰呭彲浠ヤ粠璿硶2涓彂鐜幫紝items騫朵笉瀛樺湪锛屼絾鏄綋娌℃湁浣跨敤items灞炴€ф椂锛屽氨涓€瀹氳浣跨敤begin鍜?/span>end榪欎袱涓睘鎬с€?/span>
<head>
<title>CH7聽-聽Core_forEach2.jsp</title>
</head>
<body>
<h2><c:out聽value=" 寰幆"聽/></h2>
<c:forEach聽begin="1"聽end="10"聽var="item"聽>
${item}</br>
</c:forEach>
</body>
</html>
鍙樻垚涓€涓櫘閫氱殑寰幆銆傛鑼冧緥鏄皢寰幆璁懼畾涓猴細浠? 寮€濮嬭窇鍒?0锛屾€誨叡浼氶噸澶嶅驚鐜?0 嬈★紝騫?br>
涓斿皢鏁板瓧鏀懼埌item 鐨勫睘鎬у綋涓?聽
<head>
</head>
<body>
<h2><c:out聽value="<c:forEach>聽varStatus聽鐨勫洓縐嶅睘鎬?聽/></h2>
<%
String聽atts[]聽=聽new聽String聽[5];
atts[0]="hello";
atts[1]="this";
atts[2]="is";
atts[3]="a";
atts[4]="pen";
request.setAttribute("atts",聽atts);
%>
<c:forEach聽items="${atts}"聽var="item"varStatus="s">
<h2><c:out聽value="${item}"/>鐨勫洓縐嶅睘鎬э細</h2>
index锛?{s.index}</br>
count锛?{s.count}</br>
first锛?{s.first}</br>
last锛?{s.last}</br>
</c:forEach>
</body>
</html>
閿産锛?56
閿產锛?23
聽聽聽聽聽聽聽聽閿?{b.key}锛?{b.value聽}<br/>
</c:forEach>
璿硶:
<c:forTokens聽聽聽items="stringOfTokens"
鏈綋鍐呭
</c:forTokens>聽聽
var聽聽 銆€銆€聽 鐢ㄦ潵瀛樻斁鐜板湪鎸囧埌鐨勬垚鍛楴 String 鍚︽棤
items 銆€銆€琚凱浠g殑瀛楃涓瞃 String 鏄棤
delims聽聽聽聽聽聽 瀹氫箟鐢ㄦ潵鍒嗗壊瀛楃涓茬殑瀛楃N String 鏄棤
varStatus聽 鐢ㄦ潵瀛樻斁鐜板湪鎸囧埌鐨勭溮鍏蟲垚鍛樹俊鎭疦 String 鍚︽棤
begin聽聽聽聽聽聽聽聽 寮€濮嬬殑浣嶇疆Y int 鍚?
end聽聽聽聽聽聽聽聽聽聽聽 緇撴潫鐨勪綅緗甕 int 鍚︽渶鍚庝竴涓垚鍛?br>
step 銆€銆€ 姣忔榪唬鐨勯棿闅旀暟Y int 鍚?
<c:forTokens>鐨刡egin銆乪nd銆乻tep銆乿ar 鍜寁arStatus 鐢ㄦ硶閮藉拰<c:forEach>涓€鏍鳳紝鍥犳锛岀瑪鑰呭湪榪欓噷灝卞彧浠嬬粛items 鍜宒elims 涓や釜灞炴€э細items 鐨勫唴瀹瑰繀欏諱負瀛楃涓詫紱鑰宒elims 鏄敤鏉ュ垎鍓瞚tems 涓畾涔夌殑瀛楃涓蹭箣瀛楃銆?br>
涓嬮潰涓轟竴涓吀鍨嬬殑<c:forTokens>鐨勮寖渚嬶細
${item}
</c:forTokens>
String聽phoneNumber聽=聽"123-456-7899";
request.setAttribute("userPhone",聽phoneNumber);
%>
<c:forTokens聽items="${userPhone}"聽delims="-"聽var="item"聽>
${item}
</c:forTokens>
${item}
</c:forTokens>
${item}
</c:forEach>
最後更新:2017-04-03 20:19:33