Eine fortgeschrittene JSF-Grafikkomponente erzeugen

Eines der Ziele bei der Entwicklung von JSF-Komponenten ist die Möglichkeit, sie in jeder JSF-konformen integrierten Entwicklungsumgebung (IDE) zu verwenden. Doch reicht JSF-Konformität nicht immer aus, um zu garantieren, dass so eine Design-Time-Integration auch funktioniert. Es folgen einige einfache Ideen, die man während der Entwicklung eigener JSF-Komponenten im Kopf behalten sollte, um deren spätere Integration in ein IDE zu erleichtern.

Zunächst sollte die JSF-Komponente grundlegendes HTML-Rendern ermöglichen. Während der Design-Time können JSF-IDEs keine dynamischen grafischen Komponenten rendern, die Live-Daten- oder Applikationsserver-Verbindungen benötigen. Daher sollten Komponenten, die komplex oder nicht konventionell (zum Beispiel kein HTML) gerendert werden, Beans.isDesignTime() verwenden, um zu bestimmen, ob sie eine grundlegende HTML-Darstellung oder echtes Komponenten-Rendern ermöglichen sollen.

Ein weiteres Design-Time-Problem ist die Positionierung und Dimensionierung der Komponente. Sun Creator (5) verwendet das „Style“-Attribut, während IBM WSAD (6) mit „height“- und „width“’-Eigenschaften arbeitet. Eine Komponente, deren Größe verändert werden kann, sollte mit beiden Methoden zur Bestimmung der Größe umgehen können.

Und schließlich muss die Komponente, um in IDEs integriert werden zu können, zusätzliche Informationen zur Verfügung stellen, die bis jetzt noch nicht in den JSF-Spezifikationen definiert sind. Leider erfordert derzeit jede IDE eine spezielle Handhabung zur Integration der Komponente: eine XML-Datei für Sun Creator, ein Eclipse-Plugin für IBM WASD und so weiter. Ein Hauptziel der nächsten Javaserver Faces JSR (v2.0) wird sein, die zusätzlichen Metadaten-Formate zu spezifizieren.

Fazit

Dieser Artikel hat zeigt, wie man eine einfache JSF-Komponente schreibt und dass das Schreiben einer solchen Komponente gar nicht so schwer ist, weil das Framework die meiste Arbeit leistet. Das JSF-Framework managt den Status der Komponente, den Renderer und so weiter.

Dann wurden diese grundlegenden Konzepte erweitert, um eine fortgeschrittene grafische JSF-Komponente zu entwickeln, die komplexe Datensätze anzeigen, inkrementelle Aktualisierung bieten, umfangreiche clientseitige Interaktionen ermöglichen und sich mit begleitenden Komponenten koordinieren kann. Für die Unterstützung dieser Funktionen waren viele Verbesserungen an der grundlegenden JSF-Komponenten-Architektur erforderlich. Sicherlich wäre das Konzept der inkrementellen Aktualisierung in der Zukunft eine gute Verbesserung des JSF-Frameworks. Dadurch würde es möglich, nur die Teile einer Seite zu aktualisieren, die sich geändert haben, und die Aktualisierung der kompletten Seite zu vermeiden.

Zum Schluss wird deutlich, dass die Beachtung der JSF-Spezifikationen nicht immer ausreicht, um sicherzustellen, dass eine Komponenente vollständig in eine JSF-IDE integriert wird und dass eine neue JSF-Version diese Probleme bald lösen dürfte. Trotz dieser Fallstricke beschleunigt das JSF-Framework die Entwicklung von Web-Komponenten erheblich und vereinfacht die Mischung von Komponenten aus verschiedenen Quellen, um komplette und komplexe Web-Applikationen zu entwickeln.

Referenzen:

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Microsoft verschiebt erneut Copilot Recall

Die Entwickler arbeiten noch an weiteren „Verfeinerungen“. Windows Insider erhalten nun wohl eine erste Vorschau…

2 Wochen ago

GenKI im Job: Mitarbeitende schaffen Tatsachen

Laut Bitkom-Umfrage werden in jedem dritten Unternehmen in Deutschland private KI-Zugänge genutzt. Tendenz steigend.

2 Wochen ago

97 Prozent der Großunternehmen melden Cyber-Vorfälle

2023 erlitten neun von zehn Unternehmen in der DACH-Region Umsatzverluste und Kurseinbrüche in Folge von…

2 Wochen ago

„Pacific Rim“-Report: riesiges, gegnerisches Angriffs-Ökosystem

Der Report „Pacific Rim“ von Sophos beschreibt Katz-und-Maus-Spiel aus Angriffs- und Verteidigungsoperationen mit staatlich unterstützten…

2 Wochen ago

DeepL setzt erstmals auf NVIDIA DGX SuperPOD mit DGX GB200-Systemen

NVIDIA DGX SuperPOD soll voraussichtlich Mitte 2025 in Betrieb genommen und für Forschungsberechnungen genutzt werden.

2 Wochen ago

Latrodectus: Gefährlicher Nachfolger von IcedID

Latrodectus, auch bekannt als BlackWidow, ist auch unter dem Namen LUNAR SPIDER bekannt.

2 Wochen ago