一、基本語法
<c:forEach items="${list}" var="item"> <td><c:out value="${item.name}"/></td> <td><c:out value="${item.age}"/></td></c:forEach>
上述語法中,c:forEach是一個JSP標籤庫中的標籤,表示循環遍歷給定的集合元素或數組元素。其中,items指定被遍歷的集合,var指定當前遍歷的元素名,可以在標籤體內通過${item.name}的方式獲取元素中的屬性值。
在上述例子中,我們假設list是一個JavaBean組成的List,其中JavaBean中有name和age兩個屬性。
二、遍歷HashMap
<% HashMap map = new HashMap(); map.put("name1", "value1"); map.put("name2", "value2"); map.put("name3", "value3"); pageContext.setAttribute("map", map); %> <c:forEach var="entry" items="${map}"> Key: ${entry.key}, value: ${entry.value}
</c:forEach>
使用forEach標籤遍歷HashMap會稍微有點不同,我們需要將HashMap賦值到pageContext域中,然後在標籤內部通過${entry.key}、${entry.value}獲取鍵和值。
三、利用varStatus獲取遍歷狀態
<c:forEach var="item" items="${list}" varStatus="status"> <c:if test="${status.first}"> <tr> <td>${status.index} <td>${item.name} <td>${item.age} </tr> </c:if></c:forEach>
varStatus屬性可以獲得當前遍曆元素的一些統計信息。例如在上面的例子中,我們可以通過status.index獲取當前遍歷的下標,status.first表示是否是第一個元素,status.last則表示是否是最後一個元素。在標籤體內,我們利用這些信息進行一些特定的操作。
四、利用step屬性實現步長控制
<% int[] arr = {1,2,3,4,5,6,7,8,9,10}; %><c:forEach var="i" begin="0" end="9" step="3"> <c:out value="${arr[i]}"/>, <c:out value="${arr[i+1]}"/>, <c:out value="${arr[i+2]}"/>
</c:forEach>
在這個例子中,我們希望控制步長為3,輸出arr數組中每三個元素。我們可以使用step屬性來控制步長。
五、使用forEach標籤進行嵌套循環
<table> <c:forEach items="${departments}" var="department"> <tr> <td><c:out value="${department.name}" /> <td><c:out value="${department.manager}" /> </tr> <c:forEach items="${department.employees}" var="employee"> <tr> <td> <td><c:out value="${employee.name}" /> </tr> </c:forEach> </c:forEach></table>
在這個例子中,我們的departments是一個List,每個元素都是一個JavaBean,JavaBean中有一個name屬性表示部門名稱,有一個manager屬性表示部門經理名稱,還有一個employees屬性表示該部門下屬員工列表。因此,我們需要使用嵌套的forEach標籤進行遍歷。外層的forEach標籤遍歷部門列表,內層的forEach標籤遍歷每個部門的員工列表。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291769.html