2010-10-12 24 views
0

J'ai ce code:Jsp et: ne fonctionne pas comme prévu

<c:forEach var="product" items="${products}" begin="${begin}" end="${end}" varStatus="loopStatus" step="1"> 
    <div class="home_app "${loopStatus.index % 2 == 0 ? '' : 'white_bg'}"> 

Lorsque je navigue au jsp que je reçois ce dans le div:

<div }="" white_bg="" :="" ?="" 0="" 2="=" %="" ${loopstatus.index="" class="home_app "> 
+0

Qu'est-ce que servletcontainer? Quelle version de servlet dans web.xml? Que faire si vous utilisez 'c: out' à la place? – BalusC

+0

Malheureusement, c'est Tomcat 4.1 après quelques recherches que j'ai trouvé le? l'opérateur n'est pas supporté dans cette ancienne version cruddy. – arinte

Répondre

1

Essayez ceci (changement en gras):

 
<c:forEach var="product" 
      items="${products}" 
      begin="${begin}" 
      end="${end}" 
      varStatus="loopStatus" 
      step="1"> 
    <div class="${loopStatus.index % 2 == 0 ? '' : 'white_bg'}"> 

Ma préférence personnelle est la suivante au lieu de: opérateur:

 
<c:choose> 
    <c:when test="${(loopStatus.index % 2) == 1}"> 
     <div> 
    </c:when> 
    <c:otherwise> 
     <div class="white_bg"> 
    </c:otherwise> 
</c:choose> 
1

Le " avant le signe dollar semble être au mauvais endroit. Retirez-le.

+0

Fait qui ne fonctionne toujours pas. – arinte

+0

La sortie est-elle toujours la même? – vanje

+0

Ce n'est pas pertinent pour EL donc non, cela n'aidera rien. – BalusC

1

L'opérateur conditionnel (et EL dans le texte du modèle) a été introduit dans JSP 2.0. Les chances sont que vous exécutez un servletconainer qui ne prend pas en charge JSP 2.0 ou déclare web.xml comme servlet 2.2 ou plus ancien.

+0

suce. Je ne sais pas pourquoi ils n'ont jamais essayé de mettre à jour ce serveur ... – arinte