JSTL通过使用另一个参数作为键来获取map的值

时间:2018-08-06 13:18:28

标签: jstl

我的JSP页面上有2个请求参数:

  
      
  • count:一个HashMap对象,其中包含购物元素的名称和订单数量作为值。
  •   
  • size:一个HashMap对象,其中包含购物元素的名称和作为值的购物元素当前库存的大小。
  •   

例如:count包含[“煮鸡蛋”,4],size包含[“煮鸡蛋”,96]。

我写了以下jsp代码。我迭代所有计数对象,并将size的值称为计数的键值。

<c:forEach var="indexCount" items="${count}">
        <div class="row">
            <div class="col-md-12">
                <div class="panel panel-primary">
                    <div class="panel-heading panel-heading-sm">
                        <c:out value="${indexCount.key}"/>
                        <span class="pull-right">
                            <em id="size_${size['${indexCount.key}']}">Size: <c:out value="${size['${indexCount.key}']}"/> Count: <c:out value="${indexCount.value}"/></em>
                        </span>
                    </div>
                 </div>
            </div>
        </div>
    </c:forEach>

但是我在页面上看不到任何值。怎么了?

1 个答案:

答案 0 :(得分:1)

问题是您在不需要JSTL语法时使用了double。 分配一次美元符号和大括号就足够了。 因此,更改以下代码:

<em id="size_${size['${indexCount.key}']}">Size: <c:out value="${size['${indexCount.key}']}"/>

收件人

<em id="size_${size[indexCount.key]}">Size: <c:out value="${size[indexCount.key]}"/>