<c:forEach> टैग एक आमतौर पर उपयोग किया जाने वाला टैग है क्योंकि यह ऑब्जेक्ट्स के संग्रह पर पुनरावृति करता है। <c:forTokens> टैग का उपयोग एक स्ट्रिंग को टोकन में तोड़ने और प्रत्येक टोकन के माध्यम से पुनरावृति करने के लिए किया जाता है।
एट्रिब्यूट्स
<c:forEach> टैग में निम्नलिखित एट्रिब्यूट्स होते हैं:
| एट्रिब्यूट | विवरण | आवश्यक | डिफ़ॉल्ट |
|---|---|---|---|
| items | लूप करने के लिए जानकारी | नहीं | कोई नहीं |
| begin | शुरू करने के लिए एलिमेंट (0 = पहला आइटम, 1 = दूसरा आइटम, ...) | नहीं | 0 |
| end | समाप्त करने के लिए एलिमेंट (0 = पहला आइटम, 1 = दूसरा आइटम, ...) | नहीं | अंतिम एलिमेंट |
| step | हर स्टेप आइटम प्रोसेस करें | नहीं | 1 |
| var | वर्तमान आइटम को उजागर करने के लिए वेरिएबल का नाम | नहीं | कोई नहीं |
| varStatus | लूप स्थिति को उजागर करने के लिए वेरिएबल का नाम | नहीं | कोई नहीं |
<c:forEach> के लिए उदाहरण
<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:forEach> Tag Example</title>
</head>
<body>
<c:forEach var="i" begin="1" end="5">
Item <c:out value="${i}"/><p>
</c:forEach>
</body>
</html>
आउटपुट
Item 1 Item 2 Item 3 Item 4 Item 5
सामान्य उपयोग पैटर्न
संग्रह पर पुनरावृति
<c:forEach var="user" items="${userList}">
<c:out value="${user.name}"/> - <c:out value="${user.email}"/><br/>
</c:forEach>
varStatus के साथ
<c:forEach var="item" items="${list}" varStatus="status">
${status.index}: ${item} (count: ${status.count}, first: ${status.first}, last: ${status.last})
</c:forEach>
step के साथ
<c:forEach var="i" begin="0" end="10" step="2"> ${i} </c:forEach>
<!-- आउटपुट: 0 2 4 6 8 10 -->
समर्थित संग्रह प्रकार
- java.util.Collection (List, Set, आदि)
- java.util.Map (Map.Entry पर पुनरावृति करता है)
- सरणी (प्रिमिटिव और ऑब्जेक्ट)
- Iterator, Enumeration
- कॉमा-अलग किए गए स्ट्रिंग (स्वचालित रूप से टोकनाइज़ नहीं - इसके लिए forTokens का उपयोग करें)
प्रदर्शन नोट
varStatus लूप मेटाडेटा तक पहुंच प्रदान करता नया ऑब्जेक्ट बनाए बिना (कुशल)। बड़े संग्रह के लिए, पेजिनेशन पर विचार करें।