2008-12-03 4 views
0

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

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

Вы сказали бы нам, что taglib вы используете, желательно включив объявление? – sblundy 2008-12-03 14:23:51

+0

Его <% @ taglib uri = "/ struts-tags" prefix = "s"%> – 2008-12-03 14:38:19

ответ

1

получил его actully это какой-то конфликт в тегах

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

<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

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

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

Добавить "% {}" , Например, так:

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

Нет, если я использую $ {} в этом тесте, получаю эту смешную ошибку "тест атрибута не принимает никаких выражений" – 2008-12-03 14:20:35

0

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

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

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

  • JSTL метки (С: Foreach)
  • Struts метки (элем: если)

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

  • JSTL метки (С: Foreach)
  • JSTL метки еще раз (с: когда)

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

  • Struts теги (элем: итераторы)
  • Распорки метки еще раз (S: Если)

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