ADFFaces /JSF Templates zur Wiederverwendung

Oberflächen weisen traditionell einen hohen Grad an widerholenden Bereichen auf. Die Einbindung von Fragmenten mit Include-Tags haben hier einen sehr hohen Verbreitungsgrad. Dieser Mechanismus hat jedoch einen entscheidenden Nachteile: die Fragmente werden 1:1 ohne Anpassungsmöglichkeit in die aufrufende Seite eingebunden. Änderungen am Verhalten oder an der Gestaltung lassen sich damit kaum oder nur durch Umwege realisieren. ADF löst das Problem u.a. mit den genannten ADF-Templates bzw. ADF-Declarative Components (siehe auch AMIS und Andrejus), die Aufrufparameter wie als Funktionsargumente erhalten können. Unterschieden wird zwischen einfachen Attributen und komplexe Seitenfragmet-Argumenten. Attribute steuern das Verhalten, dagegen werden Seitenfragmente am gewünschten Bereich innerhalb der Template-Vorgabe positioniert. Für ein UI-Wizard/Dialog Template würden z.B. die Buttons übergeben und im Template unterhalb den Eingabefeldern positioniert. Trotz spezifischem Verhalten der übergebenen Buttons, ist somit die Ausrichtung bei allen Seiten identisch, ohne dass er Anwendungsentwickler sich letztlich um Position oder Ausrichtung kümmern muss.

Wiederverwendung gilt in ADF als wichtiges Designprinzip: alle Seiten werden als ADF-Fragmente mit der Endung .jsff erstellt und im Seiten-Controller (ADFFlow) orchestriert. Das Einbinden der erstellten Fragmente in die JSF Hauptseiten oder auch in das Portal erfolgt erst bei der konkreten Verwendung über das JSF-Elemente Region und Dynamic Region (<af:region>). Jede ADF-Region verwaltet den Maskenstatus autark womit mehrere unabhängige Anwendungsfälle (z.B. ausführen der Kundenauskunft während man in einer parallel angezeigten Region Auftragsdaten ändert) parallel in der selben Maske gestartet werden können.

Die Problematik, dass somit mehrere HTML-From Elemente geschachtelt in einer Seite vorhanden sein können – ist in HTML untersagt, wird in ADF mit dem Tag <ad:form> und <af:subform> gelöst. In Seitenfragmenten sollte deshalb stets <af:subform> anstatt af:form verwendet werden.

Widerverwendung bedeutet auch technologisch auch Upgradefähig zu sein. Die klassische JSP Entwicklung, bei der verschiedene Sprachen (HTML, Java, JavaScript, CSS, JSP-Tags), in einer Datei gebündelt verwendet wurden lassen sich bei einem Innovationsschub nur schwer in eine neue Technologie überführen..

ADFFaces & Facelets

Alternative zu den ADF-Templates existiert das Template-Framework Facelets, das u.a. in der JSF Version 2 mit im Standard enthalten sein wird. ADF unterstützt Facelet bereits seit der ersten Version. Dem Paradigma als Auszeichnungssprache XML (XHTML) anstatt, JSP Syntax zu folgen, wurde seit Beginn der ADF Entwicklung gefolgt. Die Verwendung von Facelet als Definitions-Struktur für Seiten ist deshalb einfach möglich und bringt den Vorteil der kurzen Turnaround-Zeiten bei der Entwicklung – JSP-Compile, Deploy, Class-Reload entfällt.

Derzeit wird jedoch Facelet in ADFFaces nicht in der Kombination mit ADF-Templates und ADF-Page-Fragmenten unterstützt, da der ADF-Template Mechanismus bereits seit 2002 im UIX Framework existieren und es damals noch keine Facelets gab. Mit einer nächsten ADF Version, die u.a. JSF 2.0 unterstützt, wird sich diese jedoch ändern.

Advertisements

~ von bmaier - 9. Oktober 2010.

Kommentar verfassen

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

 
%d Bloggern gefällt das: