Pergunta

Eu gostaria de fazer algo parecido com isto:

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

mas eu acho que a única maneira de fazer isso é assim:

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

Existe uma maneira de fazê-lo mais parecido com o jeito que eu quero?

Foi útil?

Solução 3

Graças à GClaramunt [user 98867] colocando-me no rumo certo, eu descobri a resposta correta:

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

Outras dicas

Não sei o que você está tentando resolver, mas você tem certeza que precisa do <c:out value='${param.sizeIndex}'/> dentro da '[]'? JSTL deve ser processado, tudo ao mesmo tempo, e você deve ser capaz de escrever algo como:

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

Ou talvez usando <c:set var="sIdx" value="${param.sizeIndex}" />

Mas eu não estou totalmente familiarizado com tags XML JSTL para ser 100% de certeza ...

Eu acho que encontrei o que você está procurando aqui :

<x:set var="abook"
select="$applicationScope.booklist/
        books/book[@id=$param:bookId]" />
  <h2><x:out select="$abook/title"/></h2> 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top