2009-04-30 91 views
2

循環XML我願做這樣的事情:避免在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> 

有沒有辦法做到它更像我想要的方式?

回答

1

由於GClaramunt [網友98867]把我的我發現了正確的答案:

<x:out select="$productXML/product/sizes/size[$param:sizeIndex]" escapeXml="false"/> 
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%確保...

+0

有道理。我嘗試過,但它不起作用。至少它不會產生編譯器錯誤,但它只是默默地失敗。 – Dennis 2009-05-02 00:37:59

1

我想我發現你在找here

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

非常感謝您的幫助。這個答案我會給你75%的分數。它使我走上了正軌,但它並不完全是正確的答案,因爲我的問題與書籍或變量如'abook'無關,而且我沒有使用'id'屬性。 – Dennis 2009-05-03 02:09:13