एक आईडी के रूप में JSTL forEach पाश के varStatus का उपयोग करें


104

मैं JSTL फॉरच लूप से गिनती का उपयोग करना चाहता हूं, लेकिन मेरा कोड काम नहीं करता है।

<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount}">
    </div>
</c:forEach>

पैदा करता है

<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >

9
यहाँ वर्ग 'javadoc: download.oracle.com/javaee/6/api/javax/servlet/jsp/jstl/core/… देखो क्या गटर विधियाँ प्रदान करता है। हां, दूसरों के बीच में getIndex():)
बालुसक

जवाबों:


259

द्वारा निर्धारित चर varStatusएक LoopTagStatusवस्तु है, एक इंट नहीं। उपयोग:

<div id="divIDNo${theCount.index}">

स्पष्टीकरण देना:

  • ${theCount.index}0जब तक आप beginविशेषता सेट नहीं करते , तब तक गिनती शुरू होती है
  • ${theCount.count} पर गिनती शुरू होती है 1

21
${theCount.count} हमेशा 1 पर ${theCount.index}शुरू होता है। जो कुछ भी आपने निर्धारित किया है उस पर शुरू होता beginहै। जैसे<c:forEach var="foo" items="${bar}" begin="5" varStatus="theCount">
vegemite4me

8

आप इनमें से किसी का उपयोग करेंगे:

JSTL c: forEach varStatus गुण

संपत्ति पाने वाला विवरण

  • वर्तमान getCurrent () पुनरावृत्ति के वर्तमान दौर के लिए आइटम (संग्रह से)।

  • सूचकांक getIndex () पुनरावृत्ति के वर्तमान दौर के लिए शून्य-आधारित सूचकांक।

  • गणना getCount () पुनरावृत्ति के वर्तमान दौर के लिए एक-आधारित गणना

  • फर्स्ट फ़र्स्ट () यह दर्शाता है कि वर्तमान दौर पुनरावृत्ति के माध्यम से पहला मार्ग है या नहीं
  • लास्ट लास्ट () यह दर्शाता है कि वर्तमान दौर पुनरावृत्ति के माध्यम से अंतिम पास है या नहीं

  • getBegin प्रारंभ करें () प्रारंभ विशेषता का मान

  • अंत getEnd () अंत विशेषता का मूल्य

  • चरण getStep () चरण विशेषता का मूल्य


4

आप यह कोशिश कर सकते हैं। समान परिणाम

 <c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount.count}"></div>
 </c:forEach>

1

इसकी वास्तव में मुझे showDetailItemनीचे दिए गए कोड के लिए गतिशील रूप से आईडी बनाने में मदद मिली ।

<af:forEach id="fe1" items="#{viewScope.bean.tranTypeList}" var="ttf" varStatus="ttfVs" > 
<af:showDetailItem  id ="divIDNo${ttfVs.count}" text="#{ttf.trandef}"......>

यदि आप इस लाइन को निष्पादित करते हैं <af:outputText value="#{ttfVs}"/>तो नीचे दिया गया है:

{सूचकांक = ३, गिनती = ४, अंतिम = असत्य, प्रथम = असत्य, अंत = count, चरण = १, आरंभ = ०}


@ हेनरीकेटर यहां एक वास्तविक उत्तर है। जब तक मैंने इसे ठीक नहीं किया तब तक सभी फ़ॉर्मेटिंग में सभी html छिपे हुए थे।
डैन इज़ फ़िडलिंग बाई फायरलाइट

यह ठीक वैसा ही उत्तर प्रदान करता है जैसा कि 3 साल पहले ही दिया गया था (उपयोग varStatus.count), केवल बहुत कम पठनीय। दूसरे लोगों के जवाब पढ़ने से क्यों परेशान हैं? ;)
रस्टेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.