避免在jstl中循环xml

时间:2009-04-30 12:56:08

标签: java xml jsp jstl

我想做这样的事情:

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

但我认为唯一的方法就是这样:

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

有没有办法更像我想要的方式呢?

3 个答案:

答案 0 :(得分:1)

不确定您要解决的是什么,但是您确定在“[]”中需要<c:out value='${param.sizeIndex}'/>吗? JSTL应该同时处理,你应该能够编写如下内容:

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

或者可能使用<c:set var="sIdx" value="${param.sizeIndex}" />

但我并不完全熟悉JSTL XML标签100%确定......

答案 1 :(得分:1)

我想我找到了你在找什么here

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

答案 2 :(得分:1)

感谢GClaramunt [用户98867]让我采用正确的方法,我发现了正确的答案:

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