عدم الحصول على قيمة "الفهرس" من حلقة إلى حلقة IF في JSP
سؤال
إن بياني إذا كان البيان دائمًا يقيم إلى خطأ وليس دخول <span>
الكتلة. بسبب ذلك ، لا أستطيع الحصول على قيمة "الفهرس" في حالة IF ، لقد جربت كل شيء مؤشر مع # و ٪. هل يمكن لأي شخص أن يقترح الحل؟
<c:forEach var="index" begin="1" end="<%=a%>" step="1">
<s:if test="index == 1">
<span class="currentpage"><b>${page_id}</b></span>
</s:if>
<s:else>
<a href="searchAction.html?page_id=${index}&searchString=${searchString}" class="paginglinks">${index}</a>
</s:else>
</c:forEach>
المحلول
حصلت عليها بشكل مباشر إنها بعض الصراع في العلامات
يجب أن يكون مثل
<c:forEach var="index" begin="1" end="<%=a%>" step="1" varStatus="status">
<c:choose>
<c:when test="${page_id==index}">
<span class="currentpage"><b>${page_id}</b></span>
</c:when>
<c:otherwise>
<a href="searchAction.html?page_id=${index}&searchString=${searchString}" class="paginglinks">${index}</a>
</c:otherwise>
</c:choose>
</c:forEach>
نصائح أخرى
الصراع هو أنك في المنشور الأول تخلط
- علامات JSTL (C: foreach)
- علامات الدعامات (S: IF)
يعمل الحل المقترح لأن لديك الآن
- علامات JSTL (C: foreach)
- علامات JSTL مرة أخرى (C: متى)
حل جيد آخر سيكون
- علامات الدعامات (S: Iterator)
- علامات الدعامات مرة أخرى (S: IF)
بشكل عام ، من المتوقع أن يكون استخدام العلامات من تقنيات متعددة مشكلة.
استعمال
test="${index == 1}"
أو حاول استخدام سمة Varstatus لذلك ...
<c:forEach var="index" varStatus="status" begin="1" end="<%=a%>" step="1">
<s:if test="${status.count == 1}">
<span class="currentpage"><b>${page_id}</b></span>
</s:if>
<s:else>
<a href="searchAction.html?page_id=${index}&searchString=${searchString}" class="paginglinks">${index}</a>
</s:else>
</c:forEach>
قيمة الاختبار غير قابلة للتقييم ، إنها مجرد سلسلة إلى الصفحة.
تحرير ، لديك بناء جملة Strut's.
أضف "٪ {}" ، مثل ذلك:
<s:if test="%{index == 1}">
لا تنتمي إلى StackOverflow