在JSTL中按字符串键访问TreeMap条目

时间:2011-06-24 17:15:16

标签: jstl treemap

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

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

1 个答案:

答案 0 :(得分:1)

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

展开您的catId变量:

 ${categories[“${catId}”}

应该是

 ${categories[catId]}

那应该解决它。