Pergunta

Minha declaração IF está sempre avaliando para falsa e não entrando no <span> quadra. Por esse motivo, não consigo obter o valor de "índice" na condição IF, tentei tudo o que anexava Índice com # e %. Alguém pode sugerir a solução?

<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>
Foi útil?

Solução

Consegui atualmente, é algum conflito nas tags

deve ser como

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

Outras dicas

O conflito é que, no primeiro post, você está misturando

  • Tags jstl (o c: foreach)
  • Tags de suporte (o s: se)

Sua solução proposta funciona porque você agora tem

  • Tags jstl (o c: foreach)
  • JSTL tags novamente (o C: quando)

Outra boa solução seria

  • Tags de suporte (o s: iterator)
  • Tags de suporte novamente (o s: se)

De um modo geral, espera -se que o uso de tags de várias tecnologias seja problemático.

usar

 test="${index == 1}"

Ou tente usar o atributo varstatus então ...

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

O valor do teste não é avaliado, é apenas uma string para a página.

Editar, você usa a sintaxe do Strut.

Adicione "%{}", assim:

<s:if test="%{index == 1}">
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top