Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker geht auch!

Es gibt unterschiedliche Template Engine, wie zum Beispiel Apache Velocity aber auch Apache Freemarker.

Bei der Verwendung von Templates, kann man sich einfach auf die Präsentation der Daten konzentrieren. Das läuft nach dem MVC (Model View Controller) Pattern. Die Templats können auch über diesen Online FreeMarker Template Tester ohne Aufwand getestet werden.

Heute mal ein kleines Beispiel, mit Freemarker. Wir wollen Verzeichnisse nach Mindmaps durchsuchen, und alle gefundenen Mindmaps in eine HTML-Seite ausgeben.

Fangen wir mit einem JUnit Test an:

Hier die Testmethode:

Wir brauchen einmalig (Singelton) eine Configuration, hier die Methode:

Und dann die Methode, die die eigentlich Arbeit macht, die auch mehrfach aufgerufen werden kann:

Damit die obige Methode mehrfach aufgerufen werden kann, verwende ich diese Methode, die aber für die Funktionsweise der Template-Engine nicht nötig ist:

Ein einfaches Mindmap BE brauchen wir auch noch:

Nun brauchen wir noch ein Apache Freemarker Template:

Dies Template, kann man leicht ändern, um Anpassungen an der Ausgabe zu erhalten.

Dann brauchen wir eine pom.xml mit den Freemarker und JUnit Abhängigkeiten:

Das ist eigentlich alles für das generieren. Jetzt nur noch die Verzeichnisse einlesen und das Ergebnis ausgeben, durch das Starten des JUnit Tests:

So …

Jetzt kann man durch eine kleine Änderung des Templates, z.B. eine Tabelle ausgeben:

Die dann so aussieht:

Genauso könnte man leicht CSV oder auch sonstige Dateiformate ausgeben.

Das ganze Projekt kann von GitLab geladen werden mit

git clone https://gitlab.com/IT-Berater/twmindmapgenerator.git