阅读938 返回首页    go 技术社区[云栖]


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)


Core 镙囩搴掳纴鍙堣绉颁负镙稿绩镙囩搴掳纴璇ユ爣绛惧簱鐨勫伐浣沧槸瀵逛簬 JSP 椤甸溃涓€鑸鐞嗙殑灏佽銆傚湪璇ユ爣绛惧簱涓殑镙囩涓€鍏辨湁 14 涓纴琚垎涓轰简锲涚被锛屽垎鍒槸锛?/span>

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>&lt;

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>& 杞崲涓?&lt;銆?/span>&gt;銆?/span>&#039;銆?/span>&#034;鍜?&amp;銆?/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>

<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>
<head>
<title>CH7听-听Core_forEach.jsp</title>
</head>
<body>
<h2><c:out听value="<c:forEach>听鐨勭敤娉?听/></h2>
<%
String听atts[]听=newString听[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>闄や简鏀寔鏁扮粍涔嫔锛岃缮链夋爣鍑呙2SE 鐨勯泦钖堢被鍨嬶纴渚嫔锛欰rrayList銆丩ist銆丩inkedList銆乂ector銆丼tack鍜孲et 绛夌瓑锛涘彟澶栬缮鍖呮嫭java.util.Map 绫荤殑瀵硅薄.

<c:forEach>骞朵笉鍙槸鐢ㄦ潵娴忚闆嗗悎瀵硅薄钥屽凡锛岃钥呭彲浠ヤ粠璇硶2涓彂鐜帮纴items骞朵笉瀛桦湪
锛屼絾鏄綋娌℃湁浣跨敤items灞炴€ф椂锛屽氨涓€瀹氲浣跨敤begin鍜?/span>end杩欎袱涓睘镐с€?/span>

<html>
<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>

涓婅堪锣冧緥涓纴鎴戜滑骞舵病链夋墽琛屾祻瑙堥泦钖埚璞★纴鍙槸璁惧畾begin 鍜宔nd 灞炴€х殑鍊硷纴杩欐牱瀹冨氨
鍙樻垚涓€涓櫘阃氱殑寰幆銆傛锣冧緥鏄皢寰幆璁惧畾涓猴细浠? 寮€濮嬭窇鍒?0锛屾€诲叡浼氶吨澶嶅惊鐜?0 娆★纴骞?br> 涓斿皢鏁板瓧鏀惧埌item 鐨勫睘镐у綋涓?听

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>
<head>
</head>
<body>
<h2><c:out听value="<c:forEach>听varStatus听鐨勫洓绉嶅睘镐?听/></h2>
<%
String听atts[]听=newString听[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>

杩樻湁涓€涓緥瀛愶纴瑕佽幏鍙栵细https://localhost:8080/t/index.jsp?a=123&b=256&com=297涓殑鍙傛暟鍒楄〃鎸夊涓?

阌甤om锛?97
阌産锛?56
阌产锛?23

鍙互缁揿悎EL琛ㄥ崟寮忓疄鐜帮细

<c:forEach听items="${param}"听var="b">
听听听听听听听听阌?{b.key}锛?{b.value听}<br/>
</c:forEach>



<c:forTokens>听

<c:forTokens> 鐢ㄦ潵娴忚涓€瀛楃涓蹭腑鎵€链夌殑鎴愬憳锛屽叾鎴愬憳鏄敱瀹氢箟绗﹀彿(delimiters)鎵€鍒嗛殧鐨勚€?/span>
璇硶:
<c:forTokens听听听items="stringOfTokens"

銆€銆€銆€銆€銆€銆€銆€銆€delims="delimiters"

銆€銆€銆€銆€銆€銆€銆€銆€[var="varName"]

銆€銆€銆€銆€銆€銆€銆€銆€[varStatus="varStatusName"]

銆€銆€銆€銆€銆€銆€銆€銆€[begin="begin"]

銆€銆€銆€銆€銆€銆€銆€銆€[end="end"]

銆€銆€銆€銆€銆€銆€銆€銆€[step="step"]>
链綋鍐呭
</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>鐨勮寖渚嬶细

<c:forTokens听items="A,B,C,D,E"听delims=","听var="item"听>
${item}
</c:forTokens>

涓婇溃锣冧緥鎵ц钖庯纴灏嗕细鍦ㄧ綉椤典腑杈揿嚭ABCDE銆傚畠浼氭妸绗﹀彿钬?钬濆綋锅氩垎鍓茬殑镙囱锛屾媶鎴? 涓儴鍒嗭纴涔熷氨鏄墽琛屽惊鐜? 娆★纴浣嗘槸骞舵病链夊皢A,B,C,D,E 涓殑钬?钬濇樉绀哄嚭鏉ャ€俰tems 涔熷彲浠ユ斁鍏L 鐨勮〃杈惧纺锛屽涓嬶细

<%
String听phoneNumber听="123-456-7899";
request.setAttribute(
"userPhone",听phoneNumber);
%>
<c:forTokens听items="${userPhone}"听delims="-"听var="item"听>
${item}
</c:forTokens>

杩欎釜锣冧緥灏嗕细鍦ㄧ綉椤典笂鎵揿嵃1234567899锛屼篃灏辨槸鎶?23-456-7899浠モ€?钬濆綋锅氩垎鍓叉爣璁帮纴灏嗗瓧绗︿覆鎷嗕负3 浠斤纴姣忔墽琛屼竴娆″惊鐜氨灏嗘祻瑙堢殑閮ㄥ垎鏀惧埌钖岖О涓篿tem 鐨勫睘镐у綋涓€俤elims 涓嶅彧鎸囧畾涓€绉嶅瓧绗︽潵鍒嗗壊瀛楃涓诧纴瀹冭缮鍙互涓€娆¤瀹氩涓垎鍓插瓧绗︿覆鐢ㄧ殑瀛楃銆傚涓嬮溃杩欎釜锣冧緥锛?/span>

<c:forTokens听items="A,B;C-D,E"听delims=",;-"听var="item"听>
${item}
</c:forTokens>


姝よ寖渚嬩细鍦ㄧ綉椤佃緭鍑篈BCDE锛屼篃灏辨槸璇达纴delims 鍙互涓€娆¤瀹氭墍链夋兂褰揿仛鍒嗗壊瀛楃涓茬敤鐨勫瓧绗︺€傚叾瀹炵敤<c:forEach>涔熻兘锅氩埌鍒嗗壊瀛楃涓诧纴鍐欐硶濡备笅锛?/span>

<c:forEach听items="A,B,C,D,E"听var="item"听>
${item}
</c:forEach>


涓婅堪锣冧緥钖屾牱涔熶细鍦ㄧ綉椤佃緭鍑篈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

最后更新:2017-04-03 20:19:33

  上一篇:go 启动Word总是进入安全模式解决办法
  下一篇:go android之自定义ViewGroup和自动换行的布局的实现