这与其他一些问题非常相似,但没有其他人使用字符串键。所以我们走了。
我有一个带有一组类别名称的TreeMap,按类别ID键入。 ID是一个数字(作为字符串)。
我使用值构建TreeMap,然后将其公开到页面,如下所示:
<%
Map categories = new TreeMap();
...
String categoryId = ...;
String categoryName = ...;
categories.put(categoryId, categoryName);
...
pageContext.setAttribute("categories", categories);
%>
稍后,我将遍历已分配给类别的一系列项目。每个项目都有一个.categories集合,其中包含已分配的类别的ID。我想显示名称,所以我做了这样的事情:
<c:forEach items="${item.categories}" var="catId">
${categories[“${catId}”}
</c:forEach>
不幸的是,这不会发出任何东西。 ${categories["${catId}"].value}.
但是,这样做:
${categories["2"]}
当然,该行实际上并不是由项目数据驱动的。
我已经检查过了,每个项目附带的ID确实对应于类别ID;这不是数据不匹配问题。
那么,当附加到项目的数据只有ID时,如何获取类别名称?
P.S。我应该提一下,我根本不是Java程序员。 LAMP更像是我的风格。所以修改类不是一个真正的选择。
答案 0 :(得分:1)
展开您的catId
变量:
${categories[“${catId}”}
应该是
${categories[catId]}
那应该解决它。