ich zur Zeit folgende Struktur haben:Freemarker: Erstellen einer Tabelle mit einer Liste in einer Liste
List<List<ClusterEntry>> clusters = new ArrayList<List<ClusterEntry>>();
//fill clusters and the list in clusters
input.put("clusters", clusters);
Cluster beschreibt meine Cluster und cluster.get (i) enthält alle Elemente in einem Cluster. Für einen Bericht möchte ich dieses Ergebnis mit Freemarker in eine .md-Datei ausgeben. Ziel ist es, so viele Spalten wie Cluster und in jeder Zeile einen Eintrag des entsprechenden Clusters zu haben. Das Problem, das ich bin vor ist, dass ich mit der äußeren Liste beginnen, was bedeutet, die Cluster:
|<#list clusters as c> Cluster ${c_index} | </#list>
|<#list clusters as c>-----|</#list>
Dies ist meine Lösung des Header wird in einer Zeile zu machen. Wenn ich es wie folgt tun:
|<#list clusters as c> Cluster ${c_index} |
</#list>
meine Ausgabe wird eine separate Zeile für jeden Cluster $ sein {c_index}
So, jetzt habe ich eine Spalte für jeden der Cluster-Namen, aber wie kann ich füllen die Einträge in einer entsprechenden Zeile aus? Ich brauche die entrys jeden anderen Cluster in seiner entsprechenden separaten Spalte, aber ich weiß nicht, wie das mit Freemarker zu erreichen, wie dieser Code:
<#list clusters as c>
<#list c as entry>| ${entry.id} |</#list>
</#list>
in dem entrys eines führen würde Cluster in einer Reihe und mehr der nächste Cluster in der nächsten Reihe. Ich möchte dies aber mit Spalten
Vielen Dank für die Hilfe noch einmal. Die Formatierung ist jetzt genau so, wie ich es versucht habe. Allerdings mit dieser Ausgabe hat die Java-Objekt-ID. Ich möchte zum Beispiel zugreifen: c [entityIndex] .id! in Zeile 4 Ihrer Lösung. Leider bekomme ich dann: FreeMarker Vorlage Fehler: Das folgende hat ausgewertet, um Null oder fehlt: ==> c [entityIndex] [in Vorlage "template.ftl" in Zeile 4, Spalte 26] –
In diesem Fall können Sie schreiben ' (c [entityIndex] .id)! '. Irgendwie komische Syntax, aber ... so funktioniert es. – ddekany
Nun, das dauerte zwei Sekunden und löste meine einstündige Anstrengung von früher. Vielen Dank für die großartige Hilfe! –