无法在JSTL循环中获取Map <integer,string =“”>值

时间:2015-11-12 12:26:33

标签: java jsp servlets jstl

我试图在JSP页面中呈现的Servlet中设置Map值,如下所述:

  

Servlet代码

   Map<Integer, String> anotherItemMap = new HashMap<>();
   for (Item item : itemList) {
       anotherItemMap.put(item.getId(), "someValue");
   }

   request.setAttribute("itemList", itemList);
   request.setAttribute("anotherItemMap", anotherItemMap);

   request.getRequestDispatcher(forwardToAddress).forward(request, response);
  

JSP代码

   <c:forEach var="item" items="${itemList}">
       <h4><c:out value="${anotherItemMap['${item.id}']}" /></h4>
   </c:forEach>

问题是我没有得到Map&lt;&gt;来自此循环的值,我可以使用System.out查看Servlet中的值,但我认为'${item.id}'值没有正确传递,这就是Map没有返回任何值的原因。

请有人请在这里指导我吗?如果需要更多解释或澄清,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用: -

<c:forEach var="item" items="${itemList}">
   <c:set var="id" value="${item.id}"/>
   <h4><c:out value="${anotherItemMap[id]}"/></h4>
</c:forEach>