2008-12-03 7 views
0

Mon instruction if est toujours évaluée à false et ne pas entrer dans le bloc <span>. A cause de cela, je ne peux pas obtenir la valeur de " index » dans la condition if, j'ai essayé tout indice annexant aveC# et%. Quelqu'un peut-il proposer la solution?Ne pas obtenir la valeur 'index' de la boucle for à la boucle if dans le 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

Pouvez-vous nous dire quel taglib vous utilisez, de préférence en incluant la déclaration? – sblundy

+0

Son <% @ taglib uri = "/ struts-tags" préfixe = "s"%> –

Répondre

1

got it actully est un conflit dans les balises

il devrait être comme

<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

la valeur de test n'est pas évaluable, il est juste une chaîne à la page.

Modifier, vous utilisez la syntaxe de strut

Ajouter "% {}" , Comme ceci:

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

Nope si j'utilise $ {} dans ce test, obtenir cette erreur drôle "test d'attribut n'accepte aucune expression" –

+0

désolé ce que vous avez suggéré deviendra une erreur de syntaxe –

+0

désolé index ne peut pas être résolu –

0

utilisation

test="${index == 1}" 

ou essayez d'utiliser l'attribut varStatus alors ...

<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

Nope si j'utilise $ {} dans ce test, obtenir cette erreur drôle "test d'attribut n'accepte aucune expression" –

1

Le conflit est que le premier poste vous mixez

  • balises JSTL (le c: forEach)
  • balises Struts (les s: si)

Votre solution proposée fonctionne parce que vous avez maintenant

  • balises JSTL (le c: forEach)
  • balises JSTL à nouveau (c: quand)

Une autre bonne solution serait

  • Struts balises (s: iterator)
  • Struts balises encore (les s: si)

En règle générale, l'utilisation de balises provenant de plusieurs technologies devrait poser problème.

Questions connexes