سؤال

وأود أن تفعل شيئا من هذا القبيل:

<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> 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top