Java 避免在jstl中循环xml

Java 避免在jstl中循环xml,java,xml,jsp,jstl,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="$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>

但我认为唯一的办法是:

<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>


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

不知道你想解决什么问题,但是你确定你需要“[]”中的
?JSTL应该同时处理,您应该能够编写如下内容:

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

或者使用


但我并不完全熟悉JSTL XML标记,100%确定…

我想我找到了您想要的:


多亏GClaramunt[user 98867]让我走上了正确的道路,我找到了正确的答案:

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


有道理。不过我试过了,但没用。不过,至少它不会产生编译器错误,只是默默地失败了。非常感谢您的帮助。对于这个答案,我会给你75%的分数。这让我走上了正确的道路,但这并不是正确的答案,因为我的问题与书籍或变量(如“abook”)无关,而且我没有使用“id”属性。