Eviter de boucler xml dans jstl
Question
J'aimerais faire quelque chose comme ça:
<x:out select="$productXML/product/sizes/size[<c:out value='${param.sizeIndex}'/>]" escapeXml="false"/>
mais je pense que la seule façon de le faire est la suivante:
<x:forEach var="size" begin="${param.sizeIndex}" end="${param.sizeIndex+1}" select="$productXML/product/sizes/*">
<x:out select="$size" escapeXml="false"/>
</x:forEach>
Y at-il un moyen de le faire plus comme je le veux?
La solution 3
Merci à GClaramunt [utilisateur 98867] de m'avoir mis sur la bonne voie, j'ai découvert la bonne réponse:
<x:out select="$productXML/product/sizes/size[$param:sizeIndex]" escapeXml="false"/>
Autres conseils
Vous n’êtes pas sûr de ce que vous essayez de résoudre, mais êtes-vous sûr d’avoir besoin de <c:out value='${param.sizeIndex}'/>
dans le '[]'? JSTL doit être traité en même temps et vous devriez pouvoir écrire quelque chose comme:
<x:out select="$productXML/product/sizes/size[param.sizeIndex]" escapeXml="false"/>
Ou peut-être en utilisant <c:set var="sIdx" value="${param.sizeIndex}" />
Mais je ne suis pas totalement familiarisé avec les balises XML JSTL pour être sûr à 100% ...
Je pense avoir trouvé ce que vous cherchiez ici :
<x:set var="abook"
select="$applicationScope.booklist/
books/book[@id=$param:bookId]" />
<h2><x:out select="$abook/title"/></h2>