2009-04-30 23 views
2

Looping Ich möchte so etwas wie dies tun:vermeiden xml in jstl

<x:out select="$productXML/product/sizes/size[<c:out value='${param.sizeIndex}'/>]" escapeXml="false"/> 

aber ich denke, der einzige Weg, es zu tun, ist wie folgt:

<x:forEach var="size" begin="${param.sizeIndex}" end="${param.sizeIndex+1}" select="$productXML/product/sizes/*"> 
    <x:out select="$size" escapeXml="false"/> 
</x:forEach> 

Gibt es eine Möglichkeit zu tun es mehr wie ich es möchte?

Antwort

1

Dank GClaramunt [user 98867] mich auf die Indienststellung richtig tack, ich entdeckte die richtige antwort:

<x:out select="$productXML/product/sizes/size[$param:sizeIndex]" escapeXml="false"/> 
1

Nicht sicher, was Sie versuchen zu lösen, aber sind Sie sicher, dass Sie die <c:out value='${param.sizeIndex}'/> innerhalb der '[]' brauchen? JSTL sollten alle zur gleichen Zeit bearbeitet werden, und Sie sollten wie etwas der Lage sein, schreiben:

<x:out select="$productXML/product/sizes/size[param.sizeIndex]" escapeXml="false"/> 

Oder vielleicht <c:set var="sIdx" value="${param.sizeIndex}" />

mit Aber ich bin nicht völlig mit JSTL XML-Tags vertraut zu 100% zu sein sicher ...

+0

macht Sinn. Ich habe es jedoch versucht und es funktioniert nicht. Zumindest erzeugt es keinen Compiler-Fehler, es scheitert nur im Hintergrund. – Dennis

1

ich glaube, ich gefunden, was Sie here suchen:

<x:set var="abook" 
select="$applicationScope.booklist/ 
     books/book[@id=$param:bookId]" /> 
    <h2><x:out select="$abook/title"/></h2> 
+0

Vielen Dank für Ihre Hilfe. Ich würde Ihnen 75% für diese Antwort geben. Es bringt mich auf den richtigen Weg, aber es ist nicht genau die richtige Antwort, weil meine Frage nichts mit Büchern oder Variablen wie "abook" zu tun hat, und ich verwende keine "id" -Attribute. – Dennis