【问题标题】:Avoid looping xml in jstl避免在 jstl 中循环 xml
【发布时间】:2010-10-22 20:20:23
【问题描述】:

我想做这样的事情:

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

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

【问题讨论】:

    标签: java xml jsp jstl


    【解决方案1】:

    感谢 GClaramunt [用户 98867] 让我找到了正确的答案:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 非常感谢您的帮助。对于这个答案,我会给你 75% 的信用。它使我走上了正确的道路,但这并不是正确的答案,因为我的问题与书籍或“abook”等变量无关,而且我没有使用“id”属性。
      【解决方案3】:

      不确定您要解决什么问题,但您确定需要在 '[]' 中使用 &lt;c:out value='${param.sizeIndex}'/&gt; 吗? JSTL 应该同时处理,你应该可以这样写:

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

      或者也许使用&lt;c:set var="sIdx" value="${param.sizeIndex}" /&gt;

      但我对 JSTL XML 标记并不完全熟悉,100% 肯定......

      【讨论】:

      • 有道理。不过我试过了,还是不行。至少它不会产生编译器错误,它只是默默地失败。
      猜你喜欢
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 2014-01-24
      相关资源
      最近更新 更多