閱讀938 返回首頁    go 阿裏雲 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和自動換行的布局的實現