ich bastel mir mit freemarker so einige Dinge zusammen. Programmiererfahrung habe ich, aber freemarker ist für mich neu. Bis auf paar Kleinigkeiten komme ich zurecht.
Was mich aber aktuell hindert ist, es vernüchtig zu debuggen. Derzeit behelfe ich mir mit ${row.addCol("Test", testVariable)}, dass aber bei Schleifen oder Arrays nicht möglich ist.
Ich hatte auch schon in der Doku von Synesty geschaut, aber dazu nichts gefunden (oder vielleicht übersehen?).
Daher meine Frage, welche Möglichkeiten habe ich, um vor allem Arrays zu debuggen?
Ein von vielen Beispielen (Logik für hier etwas umgeschrieben):
für das Debuggen eines Arrays, wenn du nicht pro Array-Eintrag eine neue Zeile erstellen möchtest, könntest du dir das Array als kommaseparierte Liste ausgeben lassen.
Das könntest du dann zum Beispiel über die join Funktion machen.
Bei einem einfachem Array was nur aus Integers besteht wäre das wie folgt:
${array?join(";")}
Oder um es dann als Teil einer neuen Spalte auszugeben wäre dann:
${row.addCol("Test", array?join(";"))}
Für komplexere Collections, die mehrere Key Value Paare beinhalten, wie in deinem Beispiel müsstest du vor dem joinen deine Collection in eine einfache Collection umwandeln.
Sprich aus [{ "tests": test, "sortNumber": 1}{ "tests": test, "sortNumber": 2},...]
musst du erstmal ein [1, 2, 3,...]
machen.
Das geht ziemlich leicht per Map funktion wie folgt:
${testMich?map(x -> x.sortNumber)?join(";")}
Wenn du JSONs statt XML hättest, könntest du die gesamte Logik, die dir dein Array transformiert in den Mapper verlagern.
Das würde das Debuggen nochmal erleichtern.
Ob es hier ein XML-Äquivallent gibt, kann ich nicht sagen.
Du kannst ein String als JSON interpretieren in dem du die ?eval_json Funktion verwendest.
Da bekommst du dann eine Collection zurück womit du ganz normal arbeiten kannst.