語法
語法1:疊代一集合對象之所有成員
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]
[begin="begin"] [end="end"] [step="step"]>
本體內容
<
/c:forEach>
語法2:疊代指定的次數
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
本體內容
</c:forEach>
屬性
名 稱
說 明
EL
類型
必須
默認值
var
用來存放現在指到的成員
N
String
否
無
items
被疊代的集合對象
Y
Arrays
Collection
Iterator
Enumeration
Map
String
否
無
varStatus
用來存放現在指到的相關成員信息
N
String
否
無
begin
開始的位置
Y
int
否
0
end
結束的位置
Y
int
否
最後一個成員
step
每次疊代的間隔數
Y
int
否
1
限制
·假若有begin屬性時,begin必須大於等於 0
·假若有end屬性時,必須大於begin
·假若有step屬性時,step必須大於等於0
Null 和 錯誤處理
·假若items為null時,則表示為一空的集合對象
·假若begin大於或等於items時,則疊代不運算
說明
如果要循序瀏覽一個集合對象,並將它的內容顯示出來,就必須有items屬性。
範例
下面的範例 Core_forEach.jsp是將數組中的成員一個個顯示出來的:
Core_forEach.jsp
<%@ page contentType="text/html;charset=GB2312 " %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<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="$" var="item" >
$</br>
</c:forEach>
</body>
</html>
在上述範例中,筆者先產生一個字元串數組,然後將此數組atts儲存至Request的屬性範圍中,再用<c:forEach>將它循序瀏覽一遍。這裡items表示被瀏覽的集合對象,var用來存放指定的集合對象中成員,最後使用<c:out>將item的內容顯示出來,執行結果如圖-8所示。
注意
varName的範圍只存在<c:forEach>的本體中,如果超出了本體,則不能再取得varName的值。上個例子中,若$ 是在</c:forEach>之後執行時,如:
<c:forEach items="$" var="item" >
</c:forEach>
$</br>
$則不會顯示item的內容。
<c:forEach>除了支持數組之外,還有標準J2SE的集合類型,例如:ArrayList、List、LinkedList、Vector、Stack和Set 等等;另外還包括java.util.Map類的對象,例如:HashMap、Hashtable、Properties、Provider和Attributes。
<c:forEach>還有begin、end和step這三種屬性:begin主要用來設定在集合對象中開始的位置(注意:第一個位置為0);end用來設定結束的位置;而step則是用來設定現在指到的成員和下一個將被指到成員之間的間隔。我們將之前的範例改成如下:
Core_forEach1.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>CH7 - Core_forEach1.jsp</title>
</head>
<body>
<h2><c:out value="<c:forEach> begin、end和step的用法" /></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="$" var="item" begin="1" end="4" step="2" >
$</br>
</c:forEach>
</body>
</html>
<c:forEach>中指定的集合對象atts將會從第2個成員開始到第5個成員,並且每執行一次循環都會間隔一個成員瀏覽。因此結果是只顯示atts[1]和atts[3]的內容,如圖7-9所示。
相關詞條
-
foreach
foreach 語句為數組或對象集合中的每個元素重複一個嵌入語句組。foreach 語句用於循環訪問集合以獲取所需信息,但不套用於更改集合內容以避免產生...
形式 語法 -
<c:forEach>
c:forEach
-
usort
"); foreach ($a as $key = $value) { echo...; } } $a[] = new TestObj("c"); $a[] = new TestObj...")); foreach ($a as $item) { echo $item-...
-
fgetcsv
in line $row: \n"; $row++; for ($c=0; $c $num; $c++) { echo $data[$c... = 0; $y = 0; foreach($detail as $i...
-
php數組
($array);// 現在刪除其中的所有單元,但保持數組本身的結構foreach... = 'one', 1 = 'three') ? foreach...' or T_NUM_STRING'// This of c ...
基本語法 : PHP 數組 語法 實用函式 數組做什麼和不做什麼 轉換為數組 -
Beetl
。8支持單獨測試,在MVC體系中,缺少C和M,也能單獨測試V,即...的維護。Html代碼 tr item="user" foreach... = new byte[]{0x20,0x20,0x20,0x20,0x3c,0...
基本介紹 實現特徵 -
hexdec
(substr($c, 0,1),2)); $out[1] = $out['g...(str_repeat(substr($c, 1,1),2)); $out[2...(str_repeat(substr($c, 2,1),2)); } Manithu...
-
RSS Extractor and Displayer
(c) 2007 Scriptol.com - Licence...); // Processing articles foreach($items..."); $RSS_Content = array(); foreach...
-
八皇后問題
,使教學能產生良好的效果。下面是用Turbo C實現的八皇后問題的圖形程式...,可定義如下三個整型數組:a[8],b[15],c[24]。其中:a[j-1...)的對角線(右上至左下)有皇后c[i-j+7]=1 (i,j)的對角線...
問題介紹 問題算法 圖形實現 回溯算法