Не получается значение 'index' из цикла for в цикл if в JSP - PullRequest
0 голосов
/ 03 декабря 2008

Мой оператор if всегда имеет значение false и не входит в блок <span>. Из-за этого я не могу получить значение «index» в условии if, я пробовал каждую вещь, добавляя index с # и%. Кто-нибудь может предложить решение?

<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>

Ответы [ 4 ]

1 голос
/ 30 января 2009

Конфликт в том, что в первом посте вы смешиваете

  • теги JSTL (c: forEach)
  • Теги Struts (s: if)

Ваше предлагаемое решение работает, потому что теперь у вас есть

  • JSTL-теги (c: forEach)
  • JSTL-теги снова (c: когда)

Другим хорошим решением было бы

  • Теги Struts (итератор s:)
  • Снова вставляет теги (s: if)

Вообще говоря, использование тегов из нескольких технологий ожидается, будет проблематичным.

1 голос
/ 04 декабря 2008

понял, это какой-то конфликт в тегах

должно быть как

<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>
0 голосов
/ 03 декабря 2008

использование

 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>
0 голосов
/ 03 декабря 2008

Тестовое значение не оценивается, это просто строка на странице.

Edit, вы используете синтаксис распорки.

Добавить "% {}", вот так:

<s:if test="%{index == 1}">
...