迭代地图并检查另一个地图中是否存在密钥

时间:2012-10-23 16:27:39

标签: java jsp el

我正在迭代我的地图:

我将地图放在控制器模型属性中,如:

model.addAttribute("myMap", realMapObject);

JSP代码:

<c:forEach items="${myMap}" var="entry">
..... works perfectly iteration itself
.....

我需要检查另一个地图(myMap)中是否存在anotherMap条目密钥。我试过这个:

model.addAttribute("anotherMap", realMapObjectAnotherMap);

JSP代码:

<c:forEach items="${myMap}" var="entry">
    .....
    .....works perfectly 
 <c:choose>
 <c:when test="${not empty ${anotherMap['${entry.key}']}}">
        <h2>${entry.key} - YES</h2>
 </c:when>

 <c:otherwise>
        <h2>${entry.key} - NOT</h2>
 </c:otherwise>
 </c:choose>

我收到了这个错误:

  

包含无效的表达式:javax.el.E​​LException:Error Parsing:

1 个答案:

答案 0 :(得分:3)

您无法嵌套${ ${ } }等EL表达式。您需要在相同的单个EL表达式中执行此操作。

<c:when test="${not empty anotherMap[entry.key]}">

另见: