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


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.