Iterieren über eine verschachtelte map in <c:forEach>
Habe ich eine Map
in ein bean wie folgt:
public class TaskListData {
private Map<String, String[]> srcMasks = new HashMap<String, String[]>();
private Map<Integer, Map<String, String[]>> ftqSet = new HashMap<Integer, Map<String, String[]>>();
public void setFTQSet(Integer ftqid, String[] src, String[] masks) {
srcMasks.put("srcDir", src);
srcMasks.put("masks", masks);
ftqSet.put(ftqid, srcMasks);
}
Diese ftqSet
passt unten datastructure:
feedId = "5",
feedName = "myFeedName",
ftqSet => {
1 => {
srcDirs = ["/path/string"],
masks = ["p.txt", "q.csv"]
}
2 => { ...
}
}, ...
In meinem test-JSP-Datei, die ich versucht habe, Zugriff auf die Daten mit <c:forEach>
:
<c:forEach items="#{bean.ftqSet}" var="f">
this text does not print
${f.feedId}
</c:forEach>
Aber es ist nicht die Ausgabe ${f.feedId}
. Warum würde das sein? Wie würde ich auf diese Struktur die einzelnen Elemente, so kann ich erstellen eine schöne Tabelle?
InformationsquelleAutor volvox | 2010-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jeder iteration
Map
imc:forEach
gibt eineGekennzeichnet.Eintrag
Instanz, die wiederumgetKey()
undgetValue()
Methoden. Es ist ähnlich zu tunfor (Entry entry : map.entrySet())
im reinen Java.E. g.
Im Falle einer
Map<Integer, Map<String, String[]>>
die#{entry.value}
gibt eineMap<String, String[]>
sind, so müssen Sie Durchlaufen:Aber in deinem Fall, die
#{nestedentry.value}
ist eigentlich einString[]
, so müssen wir Durchlaufen es wieder:Durch die Art und Weise, diese sollten auf die Arbeit mit
rich:dataList
als gut.InformationsquelleAutor BalusC