سؤال
وأود أن تفعل شيئا من هذا القبيل:
<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
وبفضل GClaramunt [المستخدم 98867] وضع لي على تك الصحيح، اكتشفت الجواب الصحيح:
<x:out select="$productXML/product/sizes/size[$param:sizeIndex]" escapeXml="false"/>
نصائح أخرى
ولست متأكدا ما تحاول أن تحل، ولكن هل أنت متأكد أنك بحاجة إلى <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٪ ...
أعتقد أنني وجدت ما كنت أبحث عنه هنا:
<x:set var="abook"
select="$applicationScope.booklist/
books/book[@id=$param:bookId]" />
<h2><x:out select="$abook/title"/></h2>
لا تنتمي إلى StackOverflow