FreeMarker

FreeMarker
FreeMarker
Entwickler Jonathan Revusky, Attila Szegedi, Dániel Dékány e.a.
Aktuelle Version 2.3.16
(8. Dezember 2009)
Betriebssystem plattformunabhängig
Programmier­sprache Java
Kategorie Template Engine
Lizenz BSD-Lizenz
freemarker.sourceforge.net

FreeMarker ist eine Template Engine für die Java-Plattform, die Platzhalter in Textdateien durch dynamische Inhalte ersetzt. Die häufigste Anwendung ist das Generieren von HTML in Webanwendungen, es wird aber u.a. auch zum Erzeugen von E-Mails, Quelltext und SQL-Queries verwendet. FreeMarker ist freie Software.

Inhaltsverzeichnis

FTL FreeMarker Template Language

FreeMarker verwendet eine eigene, einfache Programmiersprache, die für die Verwendung in HTML-Templates optimiert ist.

Der Inhalt von Variablen wird in der Form ${Variable} ausgegeben, Anweisungen als <#Anweisung .../> notiert. Häufig benutzte Anweisungsblöcke lassen sich als Makro definieren und dann in der Form <@Makro .../> aufrufen (Anweisungen und Makros können Parameter haben, worauf die "..." hinweisen sollen).

FTL bietet einen vergleichsweise hohen Funktionsumfang, es lassen sich z.B. Zahlen und Datumswerte internationalisiert ausgeben, Zeichenersetzungen mit Regulären Ausdrücken durchführen, Texte für die Verwendung in JavaScript mit Maskierungszeichen versehen, Listen (auch) nach Subvariablen der Elemente sortieren oder DOM-Nodes in XML-Dokumenten adressieren.

Beispiel

Angenommen, es stehen die Variablen name (eine Zeichenkette) und items (eine Liste von Objekten mit den Feldern quantity und description) zur Verfügung.

Das Template

Freemarker-Beispiel-1-code.png

erzeugt dann folgenden Output:

<p>Einkaufskorb für Max Mustermann:</p>
<ul>
  <li>1 Stk. <b>Bleistift</b>
  <li>2 Stk. <b>Radiergummi</b>
</ul>

Anwendungen

FreeMarker wird in verschiedenen Bereichen der Softwaretechnik eingesetzt und wird von vielen Programmen und Frameworks verwendet resp. unterstützt.

  • in Webanwendungen kommt FreeMarker als Alternative zu JSP zum Einsatz. Die weit verbreiteten Frameworks Struts[1] und Spring[2] bieten hierfür FreeMarker an (als weitere Alternative steht Apache Velocity zur Verfügung). Da in FreeMarker die Verwendung von JSP-Taglibs möglich ist, muss beim Umstieg von JSP auf FreeMarker nicht auf die benötigten Taglibs (wie etwa die Struts-Taglib) verzichtet werden[3].
  • Struts 2 verwendet FreeMarker intern für das Rendering von JSP-, Velocity- und FreeMarker-Tags[4], nachdem das Vorgänger-Projekt WebWork einen Wechsel von Velocity zu FreeMarker vollzogen hatte.
  • Content Management Systeme wie Magnolia[5] verwenden FreeMarker als Template Engine.
  • in Codegeneratoren wird mit FreeMarker Quelltext (Java, SQL, RTF, PostScript) dynamisch erzeugt[6].
  • die Tools des Persistenz-Frameworks Hibernate nutzen FreeMarker beim Generieren von Datenbank-Schemas, SQL- und Java-Code. 2006 fand ein Wechsel von Velocity zu FreeMarker statt (u.a. wegen der besseren Fehlerbehandlung)[7].
  • die IDE NetBeans verwendet Freemarker intern, um in "Neue Datei..."-Assistenten die Vorlage-Dokumente mit dynamischen Inhalten zu befüllen[8].

In IDEs wie Eclipse, NetBeans IDE oder IntelliJ IDEA[9] wird die Bearbeitung von FreeMarker Templates durch Syntax-Check, Code-Vervollständigung, Popup-Hilfe u.ä. unterstützt.

Geschichte

FreeMarker 1 wurde von Benjamin Geer und Mike Bayer entwickelt und im Januar 1999 unter der LGPL-Lizenz veröffentlicht (nach wie vor als "FreeMarker classic" erhältlich).

2002 wurde der Kern von Jonathan Revusky e.a. neu geschrieben und als FreeMarker 2 unter der (im Vergleich zur LGPL) liberaleren BSD-Lizenz veröffentlicht.[10]

Literatur

Es liegt derzeit keine Monographie zu FreeMarker vor, die Konfiguration und Verwendung wird allerdings in vielen Handbüchern der Programme und Frameworks beschrieben, die FreeMarker verwenden oder unterstützen.

  • Donald Brown, Chad Michael Davis, Scott Stanlick Struts 2 in Action. Manning (2008) ISBN 978-1933988078, S. 223ff. Velocity und FreeMarker als JSP-Alternativen, S. 336 ff. Erzeugen eigener Themes durch Überschreiben der internen FreeMarker-Templates
  • Seth Ladd, Bram Smeets Building Spring 2 Enterprise Applications, Apress (2007) ISBN 978-1590599181, S. 271 f. FreeMarker als View-Technologie für Spring (neben JSP, Velocity und XSLT)
  • Jeff Linwood, Dave Minter: Beginning Hibernate. Apress (2010) ISBN 978-1430228509, S 323f. Konfiguration in den Hibernate Tools

Artikel in Fachzeitschriften:

Weblinks

Einzelnachweise

  1. Musachy Barroso e.a.: Using Freemarker Templates. In: Apache Struts 2 Documentation. Abgerufen am 24. Juli 2010 (englisch).
  2. Rod Johnson e.a.: Chapter 14. Integrating view technologies. In: The Spring Framework - Reference Documentation. Abgerufen am 24. Juli 2010 (englisch).
  3. Dániel Dékány e.a.: Using FreeMarker with servlets. In: FreeMarker Manual. Abgerufen am 24. Juli 2010 (englisch).
  4. Patrick Lightbody e.a.: Template Loading. In: Apache Struts 2 Documentation. Abgerufen am 24. Juli 2010 (englisch).
  5. Templating with FreeMarker - a primer. In: Magnolia Documentation. Abgerufen am 24. Juli 2010 (englisch).
  6. Introduction. In: apt-jelly Homepage. Abgerufen am 24. Juli 2010 (englisch).
  7. Max Andersen: A story about FreeMarker and Velocity. In: In Relation To... 3. Februar 2006, abgerufen am 24. Juli 2010 (englisch, Blog eines Hibernate-Entwicklers).
  8. FaqFreeMarker. In: NetBeans Wiki. Abgerufen am 24. Juli 2010 (englisch).
  9. FreeMarker/Velocity. In: IntelliJ IDEA Homepage. Abgerufen am 24. Juli 2010 (englisch).
  10. Dániel Dékány e.a.: Who We Are. In: FreeMarker Homepage. Abgerufen am 24. Juli 2010 (englisch).

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • FreeMarker — Тип Шаблонизатор Разработчик Jonathan Revusky, Attila Szegedi, Dániel Dékány и другие Написана на Java Операционная система Крос …   Википедия

  • Freemarker — Dernière version 2.3.16 (7 décembre 2009) [ …   Wikipédia en Français

  • FreeMarker — Infobox Software name = FreeMarker caption = developer = Jonathan Revusky, Attila Szegedi, Dániel Dékány, and others latest release version = 2.3.14 latest release date = release date|2008|09|01 latest preview version = latest preview date =… …   Wikipedia

  • Circumflex (Scala) — Circumflex Тип Web Фреймворк, ORM Разработчик Окунский Б.С., Лахтин С.Е. Написана на Scala Операционная система Cross platform (JVM) Аппаратная платформа …   Википедия

  • Template processor — A template processor (also known as a template engine or a template parser )is software or a software component that is designed to combine one or more templates with a data model to produceone or more result documents.cite book last = Niemeyer… …   Wikipedia

  • Templatesprache — Eine Template Engine (von engl. Vorlage und Antrieb, Motor) ist eine Software, die eine Datei (das Template) verarbeitet, und bestimmte Platzhalter darin mit jeweils aktuellen Inhalten füllt. Die Bezeichnungen Templateklasse und Templatesystem… …   Deutsch Wikipedia

  • Templatesystem — Eine Template Engine (von engl. Vorlage und Antrieb, Motor) ist eine Software, die eine Datei (das Template) verarbeitet, und bestimmte Platzhalter darin mit jeweils aktuellen Inhalten füllt. Die Bezeichnungen Templateklasse und Templatesystem… …   Deutsch Wikipedia

  • FTL — may refer to: *FTL For The Loss opposite of FTW For The Win Commonly used as internet slang. * FTL For The Lads . Affectionate term used mainly in Dundee by resident males in reference to the completion of the job or Job Done . * Faster than… …   Wikipedia

  • Template engine (web) — A (web) template engine is software that is designed to process web templates and content information to produce output web documents. It runs in the context of a template system.pecific types of template engines Template engine is ordinarily… …   Wikipedia

  • WebWork — Infobox Software name = Webwork developer = OpenSymphony latest release version = 2.2.6 latest release date = release date|2007|07|21 operating system = Cross platform programming language = Java (programming language) status = Unmaintained genre …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”