2010-09-06 17 views
8

J'ai regardé le tag imbriqué ci-dessous depuis environ une heure et je n'arrive toujours pas à comprendre pourquoi je continue d'obtenir un JspTagException:Je ne comprends pas JspTagException: "Utilisation illégale du tag <when> sans <choose> comme parent direct

"Illegal use of <when>-style tag without <choose> as its direct parent" 

N'êtes-vous pas permis d'imbriquer les balises état profondément ce JSTL

<c:choose> 
    <c:when test="${rec.image1Available}"> 
    <img alt="altname" src="/img1.jpg" alt="altname" /> 
    <c:otherwise> 
    <c:choose> 
     <c:when test="${rec.image2Available}"> 
     <img alt="altname" src="/img2.jpg" alt="altname" /> 
      <c:otherwise> 
      <c:choose> 
       <c:when test="${rec.image3Available}"> 
       <img alt="altname" src="img3.jpg" alt="altname" /> 
        <c:otherwise> 
        <img alt="altname" src="/holder.jpg" alt="altname" /> 
        </c:otherwise> 
       </c:when> 
      </c:choose> 
      </c:otherwise> 
     </c:when> 
    </c:choose> 
    </c:otherwise> 
    </c:when> 
</c:choose> 

Répondre

13

Vous avez <c:otherwise> balises imbriquées à l'intérieur <c:when> tags. Ces 2 balises doivent être homologues les unes aux autres. Essayez ceci:

<c:choose> 
    <c:when test="${rec.image1Available}"> 
     <img src="/img1.jpg" alt="altname" /> 
    </c:when> 
    <c:otherwise> 
     <c:choose> 
      <c:when test="${rec.image2Available}"> 
       <img src="/img2.jpg" alt="altname" /> 
      </c:when> 
      <c:otherwise> 
       <c:choose> 
        <c:when test="${rec.image3Available}"> 
         <img src="img3.jpg" alt="altname" /> 
        </c:when> 
        <c:otherwise> 
         <img src="/holder.jpg" alt="altname" /> 
        </c:otherwise> 
       </c:choose> 
      </c:otherwise> 
     </c:choose> 
    </c:otherwise> 
</c:choose> 

BTW: Vous avez alt attributs répertoriés deux fois dans chacun de vos <img> tags. J'ai enlevé les extra dans ma réponse.

3

vous avez <c:otherwise> l'intérieur <c:when><c:otherwise> devrait nous être?. ed comme suit:

<c:choose> 
    <c:when ... > 
     1st alternative 
    </c:when> 
    <c:when ... > 
     2nd alternative 
    </c:when> 
    ... 
    <c:otherwise> 
     otherwise 
    </c:otherwise> 
</c:choose>