「インデックス」を取得しない; JSPのforループからifループまでの値
質問
私のifステートメントは常にfalseと評価され、< span>
ブロックを入力しません。そのため、" index"の値を取得できません。 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)
- Strutsタグ(s:if)
提案されたソリューションが機能するのは、
- JSTLタグ(c:forEach)
- JSTLタグ(c:when)
別の良い解決策は
- Strutsタグ(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>
テスト値は評価可能ではなく、ページへの単なる文字列です。
編集、ストラットの構文を使用します。
&quot;%{}&quot;を追加します。例:
<s:if test="%{index == 1}">
所属していません StackOverflow