【发布时间】:2013-06-20 10:13:25
【问题描述】:
关于迭代 hashmap 列表的问题已被多次询问并尝试了相同的解决方案,但它不起作用。 我正在尝试在 hasmap 中显示值,但它在 jsf 页面上不起作用(我使用的是 jsf2.1)。当我尝试在 java 中迭代时,它会显示所有值,所以我知道 map 不是空的。 这是我在@BalusC 解决方案的帮助下尝试过的
<ui:repeat var="aClip" value="#{manageClipModel.clipList}">
<ui:repeat value="#{aClip.revisions}" var="revs">
rev id <h:outputText value="#{revs.revId}"/> //dispalys value
map len #{fn:length(revs.metadataMap.entry)} //displays right size of map
<c:forEach items="#{revs.metadataMap.entry}" var="entry">
key <h:outputText value="#{abc.key}"/> //does not iterate this loop
</c:forEach>
</ui:repeat>
在java中值显示正确
for (Clip aClip : clipList) {
System.out.println("comment " + aClip.getComment() + " clip id " + Clip.getClipId());
List<Revision> revs = aClip.getRevisions();
System.out.println("rev size"+revs.size());
if (revs != null && !revs.isEmpty()) {
for (Revision aRev : revs) {
System.out.println("metadata map size " + aRev.getMetadataMap().getEntry().size());
Iterator itr = aRev.getMetadataMap().getEntry().listIterator();
while (itr.hasNext()) {
Revision.MetadataMap.Entry entry = (Revision.MetadataMap.Entry) itr.next();
System.out.println("key " + entry.getKey());
System.out.println("value " + entry.getValue().getValues().toString());
}
}
}
}
}
有人能指出我在做什么错吗?
【问题讨论】:
-
您可以发布答案并接受它,而不是添加
solved和问题的解决方案。 -
我确实为问题添加了解决方案。如果您看到已编辑的帖子,则无法弄清楚如何发布自己帖子的答案
-
看到下面的按钮
Answer Your Question了吗?