= FreeMarker =

FreeMarker ist eine Template-Engine in Java. Sie ist unter der
Homepage http://freemarker.org zu finden. Im Vergleich zu anderen
Lösungen handelt es sich um die fortschrittlichste und
leistungsfähigste Template-Engine, die in Java erhältlich ist. Man
benötigt mit FMPP keine Java-Kenntnisse, um FreeMarker benutzen zu
können.

== Webseiten-Erstellung ==

Es ist sehr einfach, FreeMarker in eine Java-Webanwendung
einzubauen. Auf der Webseite des Projektes steht eine gute
Erklärung hierzu. Man kann FreeMarker dann z.B. so in den Tomcat
Java-Webserver (TomcatUnterDebian) integrieren, das man in seinen
Webspace neben den normalen *.html-Dateien auch *.ftl-Dateien legen
kann und diese dann automatisch interpretiert werden und Variablen
z.B. aus einer Datenbank gefüllt werden.

Einmal installiert ist FreeMarker damit genauso einfach zu benutzen
wie z.B. PHP. Hat man jedoch nun ein richtiges
"programmiererisches" Problem, so kann man dieses in Java (was IMHO
eine richtige Programmiersprache ist) lösen und dann entsprechend
aus dem Template heraus elegant aufrufen. Bei PHP (was IMHO nur
bedingt eine richtige Programmiersprache ist) ist man meist
gezwungen (mindestens aber verführt), im PHP-Quelltext zu
programmieren. Dies läuft in den allermeisten Fällen auf eine
Vermischung von Programmlogik und HTML-Content hinaus, was immer
eine schlechte Idee ist.

== FMPP ==

Der Nachteil an obiger Lösung ist zweifellos, dass man den Tomcat
benötigt. Oftmals sind Webseiten aber gar nicht wirklich dynamisch,
d.h. echte Änderungen in der Datenbank passieren nur selten.
Hierfür kann man trotzdem Templates benutzen, die einem dann
statische Seiten generieren, die man dann in einen ganz normalen
(z.B. Apache-) Webspace legen kann.

Sehr praktisch auch für nicht-Javaisten ist hierzu das Tool
[http://fmpp.sourceforge.net FMPP]. Hiermit kann man Templates
verarbeiten, ohne Java zu können. Dies geht ganz einfach durch
einen Kommandozeilenaufruf oder auch für komplexere Probleme durch
ein Ant-Skript. Die Daten, die in die Templates eingefügt werden,
werden aus sog. Datenquellen, das können Textdateien oder z.B.
CSV-Dateien (oder auch eine Datenbank) sein. Mit FMPP ist es
möglich, auch komplexe Webseiten leicht automatisiert herzustellen
ohne programmieren zu können.

Hierzu habe ich einen FreeMarker/Workshop geschrieben. Er dient als
Tutorial und demonstriert anhand eines Beispiels einige
Eigenschaften. -- ThomasBayen

== OpenOffice-Dokumente als Templates ==

Mit JodReports kann man die Template-Sprache auch in Office-Dokumenten benutzen.


== Alternativen ==

Die einzige echte Alternative ist
[http://jakarta.apache.org/velocity/index.html Velocity]. Dieses
existiert schon länger und ist daher weiter verbreitet, ist aber
nicht so leistungsfähig.

Je nachdem, was man erreichen möchte, kann man seine Daten auch in XML ablegen und dann verschiedene Konvertier-Methoden hierauf anwenden. Ein Beispiel hierfür ist das [DocBook] Dateiformat, für das es fertige Konverter in und von sehr vielen anderen Formaten gibt. DocBook abstrahiert dabei die Daten recht stark von der Darstellung, die später eigentlich gar keine innere Ähnlichkeit mehr zum Ursprungsdokument haben muss während FreeMarker eher für eine Abwandlung des ursprünglichen Quelltextes durch zusätzliches Markup geeignet ist.

----
[{Tag Java Tomcat Templates}]