Was ist Velocity?
... [ Inhaltsverzeichnis ] ... [ Was ist Velocity? ] ... [ Die Schablone ] ... [ Inhaltsverzeichnis ] ...
Übersicht: Was ist Velocity?
Velocity ist ein Open-Source-Projekt der Jakarta-Projektgruppe von Apache. Das Tool wird als eine Java-basierende Schablonen-Maschine bezeichnet und ist in der Version 1.3.1 (24.07.2002) erhältlich. Der Hauptnutzen liegt in dem Erstellen von dynamischen Web-Seiten. Aber auch als alleinstehende Anwendung oder in Verbindung mit XML kann Velocity genutzt werden.
Ein großer Vorteil von Velocity ist, dass die Entwicklung nach dem Modell-View-Controller-Prinzip geschieht.
In diesem Kapitel werden zunächst einige Begriffe erläutert. Danach werden die beiden Hauptbestandteile von Velocity (siehe nächstes Unterkapitel), die Schablone und die Java-Klasse, beschrieben, bevor zwei Beispiele zur Nutzung von Velocity genannt werden.
Bei der Erstellung von Velocity-Servlets wird eine Java-Klasse erzeugt, die die Schnittstelle zu Velocity beinhaltet. Das Servlet kann in einem Web-Browser aufgerufen werden. Damit dieser etwas Darstellen kann, muss die Java-Klasse etwas zurückgeben, was der Browser versteht. Die Rückgabe in Servlets besteht aus HTML-Tags, welche bei Velocity aber nicht in der Klasse erstellt (wie bei herkömmlichen Servlets), sondern aus einer Schablone ausgelesen werden. Die Schablone kann neben den HTML-Tags weitere Befehle beinhalten, die der Java-Klasse Anweisungen gibt etwas zu tun. Die Menge der Befehle sind in einer speziellen Sprache für Velocity beschrieben: der Velocity Template Language (VTL). Auf die verschiedenen Möglichkeiten der VTL wird im Kapitel „die Schablone“ näher eingegangen.
Zusammenfassend kann also festgestellt werden, dass zur Nutzung von Velocity zwei wichtige Bestandteile benötigt werden:
- eine Schablone: enthält die Inhalte der Ausgabe, wobei mittels über eine spezielle Script-Sprache auf Daten der Java-Klasse zugegriffen werden kann
- eine Java-Klasse: implementiert Velocity-Schnittstellen, welche dafür sorgen, dass die Schablone eingelesen und manipuliert wird
Auf der Velocity-Homepage wird auf die Frage nach dem Sinn von dynamischen Webseiten das „Mud-Example“ genannt.
Man soll sich vorstellen, dass man der Besitzer eines E-Shops für Matsch ist. Kunden loggen sich auf den Seiten des Shops ein und können aus verschiedenen Arten von Matsch auswählen. In einer Datenbank wird gespeichert, welcher Kunde welche Art von Matsch am Häufigsten bestellt. Wenn nun die Sorte Matsch, die er am Häufigsten kauft im Angebot sein sollte, soll er auf der Startseite eine Mitteilung darüber erhalten. Die Webseiten werden also nach den Vorlieben der Kunden dynamisch angepasst.
In der Realität ist dieses u.a. im Online-Shop von Amazon realisiert. In einer Datenbank wird gespeichert, welche Produkte ein Kunde bisher gekauft hat. Besucht der Kunde die Amazon-Homepage werden ihm Produkte, die eine Ähnlichkeit zu den bereits gekauften Produkten aufweisen, individuell angeboten.
Das Modell-View-Controller(MVC)-Konzept besagt, dass bei der Entwicklung von Software die Datenhaltung, die Darstellung und die Datenmanipulation bzw. Steuerung voneinander getrennt werden. Zwischen den einzelnen Bereichen müssen vor dem Beginn der Programmierung Schnittstellen definiert werden. Dieses benötigt anfänglich zwar Zeit, doch für die Pflege und Erweiterung entstehen später große Vorteile.
Velocity nutzt das MVC-Konzept, wie die folgende Grafik zeigt:
Der View-Teil wird durch die Schablone repräsentiert. Die Datenmanipulation findet in der Java-Klasse statt. Daten könnten z.B. mittels SQL aus einer Datenbank gelesen werden.
Der große Vorteil von Velocity ist, dass Webdesigner und Programmierer parallel an einem Projekt arbeiten können. Die Schnittstelle zwischen dem View und dem Controller ist dabei die Velocity Template Language (VTL), die im nächsten Kapitel näher beschrieben wird. Sie ist sehr einfach gehalten und leicht verständlich. Deshalb kann die VTL auch von Personen mit geringen Programmierkenntnissen (z.B. hier der Webdesigner) benutzt werden. Der Webdesigner designt eine Webseite und markiert die Stellen, in die Daten eingetragen werden müssen mit der VTL. Die Java-Klasse liest die Schablone ein und füllt die markierten Bereiche mit Daten.
... [ Inhaltsverzeichnis ] ... [ Was ist Velocity? ] ... [ Die Schablone ] ... [ Inhaltsverzeichnis ] ...