Apache Tapestry
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Apache Software Foundation |
Erscheinungsjahr | 2000[1], 11. Februar 2013[2] |
Aktuelle Version | 5.8.4[3] (6. Februar 2024) |
Betriebssystem | Plattformunabhängig |
Programmiersprache | Java[2] |
Lizenz | Apache-Lizenz |
tapestry.apache.org |
Apache Tapestry ist ein Open-Source-Framework für die Programmiersprache Java, mit dem Webanwendungen erstellt werden können. Es ist kein eigenständiger Server, sondern läuft im Kontext eines Servlet-Containers wie dem Web-Server Tomcat. Tapestry ist seit 2006 ein Toplevel-Projekt der Apache Software Foundation.[4]
Tapestry-Anwendungen bestehen aus Seiten, wobei eine Seite aus wiederverwendbaren und konfigurierbaren Komponenten besteht. Komponenten wiederum können durch sogenannte Mixins erweitert werden.
In Tapestry besteht eine Seite aus zwei Bestandteilen: Eine XML-Vorlage (.tml) und eine Javaklasse (.java). Innerhalb der XML-Vorlage können sowohl HTML-Tags als auch spezifische Tapestry-Tags für den dynamischen Inhalt verwendet werden. Diese Tapestry-Tags werden über den im Wurzelelement spezifizierten Namespace eingebunden. Die Javaklasse wird zur Verarbeitung von Ereignissen wie zum Beispiel den Klick auf einen Tapestry-Link oder das Absenden eines Formulars eingesetzt.
Die jeweils aufzurufenden Methoden können entweder über ein vorgegebenes Namensschema oder über eine Annotation festgelegt werden. Die beiden im Folgenden aufgeführten Methoden würden so beispielsweise auf das Auslösen des Links mit der ID MyLink reagieren.
void onActionFromMyLink(){...}
@OnEvent(value="action", component="myLink")
void myMethod(){...}
Mit seiner komponentenbasierten Architektur, der Trennung von Darstellung (HTML, XML) und Code ähnelt Tapestry konzeptuell WebObjects, ohne mit diesem kompatibel zu sein. Zusammen mit Apache Cayenne eingesetzt ist es durchaus als freier WebObjects-Ersatz verwendbar. Der Wechsel von einem Framework zum anderen sollte für mit einem der beiden Frameworks erfahrenen Entwickler aufgrund der Ähnlichkeiten reibungslos vonstattengehen.