0

这与其他一些问题非常相似,但没有其他人使用字符串键。所以我们开始吧。

我有一个带有一组类别名称的 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 更像是我的风格。所以修改类并不是一个真正的选择。

4

1 回答 1

1

编辑:对不起,我误读了这个问题。

打开你的catId变量:

 ${categories[“${catId}”}

应该

 ${categories[catId]}

那应该解决它。

于 2011-06-24T20:02:55.943 回答