Evita di eseguire il looping di XML in jstl
Domanda
Vorrei fare qualcosa del genere:
<x:out select="$productXML/product/sizes/size[<c:out value='${param.sizeIndex}'/>]" escapeXml="false"/>
ma penso che l'unico modo per farlo sia in questo modo:
<x:forEach var="size" begin="${param.sizeIndex}" end="${param.sizeIndex+1}" select="$productXML/product/sizes/*">
<x:out select="$size" escapeXml="false"/>
</x:forEach>
C'è un modo per farlo più come nel modo in cui voglio?
Soluzione 3
Grazie a GClaramunt [utente 98867] che mi ha messo sul punto giusto, ho scoperto la risposta corretta:
<x:out select="$productXML/product/sizes/size[$param:sizeIndex]" escapeXml="false"/>
Altri suggerimenti
Non sei sicuro di cosa stai cercando di risolvere, ma sei sicuro di aver bisogno di <c:out value='${param.sizeIndex}'/>
all'interno di '[]'? JSTL dovrebbe essere elaborato tutto allo stesso tempo e dovresti essere in grado di scrivere qualcosa del tipo:
<x:out select="$productXML/product/sizes/size[param.sizeIndex]" escapeXml="false"/>
O forse usando <c:set var="sIdx" value="${param.sizeIndex}" />
Ma non ho alcuna familiarità con i tag XML JSTL per essere sicuro al 100% ...
Penso di aver trovato quello che stai cercando qui :
<x:set var="abook"
select="$applicationScope.booklist/
books/book[@id=$param:bookId]" />
<h2><x:out select="$abook/title"/></h2>