这与其他一些问题非常相似,但没有其他人使用字符串键。所以我们开始吧。
我有一个带有一组类别名称的 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 时,我如何获得类别名称?
PS 我应该提一下,我根本不是 Java 程序员。LAMP 更像是我的风格。所以修改类并不是一个真正的选择。