我试图在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没有返回任何值的原因。
请有人请在这里指导我吗?如果需要更多解释或澄清,请告诉我。
谢谢!
答案 0 :(得分:1)
尝试使用: -
<c:forEach var="item" items="${itemList}">
<c:set var="id" value="${item.id}"/>
<h4><c:out value="${anotherItemMap[id]}"/></h4>
</c:forEach>