জেএসটিএলে ফোরচ লুপ থেকে একটি সূচক মান কীভাবে পাবেন


106

আমার requestনীচের মত বস্তুতে একটি মান সেট আছে ,

String[] categoriesList=null;
categoriesList = engine.getCategoryNamesArray();
request.setAttribute("categoriesList", categoriesList );

এবং আমি এইভাবে jsp পৃষ্ঠাতে পুনরাবৃত্তি

<% if(request.getAttribute("categoriesList") != null) { %>
<c:forEach var="categoryName" items="${categoriesList}">
   <li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li>
</c:forEach>
<% }%>

আমি কীভাবে প্রতিটি উপাদানের সূচক পেতে পারি এবং এটি জাভাস্ক্রিপ্ট ফাংশনে পাস করি onclick="getCategoryIndex()"।

উত্তর:


234

সূচি পেতে varStatus ব্যবহার করুন সি: প্রতিটি ভার স্ট্যাটাস বৈশিষ্ট্য

<c:forEach var="categoryName" items="${categoriesList}" varStatus="loop">
    <li><a onclick="getCategoryIndex(${loop.index})" href="#">${categoryName}</a></li>
</c:forEach>

আমি পেয়েছি এই Uncaught ReferenceError: লুপটি আপনার প্রচেষ্টার জন্য। এবং +1 সংজ্ঞায়িত করা হয়নি
— জাভা প্রশ্নাবলী

প্রদর্শিত উপাদানটির ক্লিক করুন
— জাভা প্রশ্নাবলী

কারণ ভ্যারস্ট্যাটাস মানটিতে লুপের পুনরাবৃত্তির মান থাকে। এর পরে মানটি বৈধ নয়। সুতরাং শুধুমাত্র আপনি ব্যতিক্রম পেয়েছিলাম। কোন উদ্দেশ্যে আপনার
— সূচিটি

স্ট্রিং অ্যারেতে প্রতিটি এলিমেন্টের সূচি [অবস্থান] জানতে হবে।
— জাভা প্রশ্নাবলী

এটি কার্যকর হয় :) যদি আমি এইভাবে অন্লিক = "getCategoryIndex ($ op loop.index})" করি ... সাহায্যের জন্য ধন্যবাদ
— জাভা প্রশ্নসমূহ

19

আমি এখন একই ধরণের সমস্যার মুখোমুখি হয়েছি বুঝতে পারি আমাদের আরও কিছু বিকল্প রয়েছে: varStatus = "লুপ", এখানে লুপটি চলক হবে যা লুপের সূচকটি ধারণ করবে।

এটি জেওর বেস সূচক বা 1 এক বেস সূচক জন্য পড়তে ব্যবহারের জন্য ব্যবহার করতে পারে।

${loop.count}` it will give 1 starting base index.

${loop.index} it will give 0 base index as normal Index of array 0 থেকে শুরু করুন।

উদাহরণ স্বরূপ :

<c:forEach var="currentImage" items="${cityBannerImages}" varStatus="loop">
<picture>
   <source srcset="${currentImage}" media="(min-width: 1000px)"></source>
   <source srcset="${cityMobileImages[loop.count]}" media="(min-width:600px)"></source>
   <img srcset="${cityMobileImages[loop.count]}" alt=""></img>
</picture>
</c:forEach>

আরও তথ্যের জন্য দয়া করে এই লিঙ্কটি দেখুন


11

আপনি varStatusএই জাতীয় বৈশিষ্ট্যটি ব্যবহার করতে পারেন : -

<c:forEach var="categoryName" items="${categoriesList}" varStatus="myIndex">

myIndex.index আপনাকে সূচি দেবে। এখানে myIndexএকটি লুপট্যাগস্ট্যাটাস অবজেক্ট।

সুতরাং, আপনি এটি আপনার জাভাস্ক্রিপ্ট পদ্ধতিতে এটি প্রেরণ করতে পারেন: -

<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>

Uncaught ReferenceError: myIndex is not defined আপনার প্রচেষ্টার জন্য আমি এটি +1 পেয়েছি
— জাভা প্রশ্নাবলী

0
<a onclick="getCategoryIndex(${myIndex.index})" href="#">${categoryName}</a>

উপরের লাইনটি আমাকে একটি ত্রুটি দিচ্ছিল। সুতরাং আমি নীচে লিখেছিলাম যা আমার পক্ষে ভাল কাজ করছে।

<a onclick="getCategoryIndex('<c:out value="${myIndex.index}"/>')" href="#">${categoryName}</a>

হতে পারে অন্য কেউ একই ত্রুটি পেতে পারে। এই ছেলেদের তাকান!


0

এটি আমার পক্ষে কাজ করে:

<c:forEach var="i" begin="1970" end="2000">
    <option value="${2000-(i-1970)}">${2000-(i-1970)} 
     </option>
</c:forEach>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.