Um JavaServer Faces (JSF) ist ein Ökosystem entstanden, das nicht mehr leicht zu durchschauen ist. Die verschieden Versionen, Produkte, und Alternativen verwirren Anfänger schnell. Hier der Versuch einen Überblick und weitere Ansatzpunkte für einen erfolgreichen Einstieg zu vermitteln.

JSF ist zunächst eine Spezifikation für ein Komponenten-orientiertes Webframework. JSF 1.0 und 1.1 entstanden im Rahmen des JSR-127. Die aktuelle Version JSF 1.2 basiert auf JSR-252 und für den 2008 erwartete Nachfolger JSF 2.0 existiert bislang erst ein JSR Draft.

War JSF erst ein Web Framework unter vielen, es inzwischen eine Standard-Technologie geworden. Mit der Aufnahme von JSF 1.2 in Java EE 5 (JSR-244; Nachfolger von J2EE 1.4) stieg die Popularität und Verbreitung rasch an. JSF ist damit Teil der von Java EE 5 verfolgten Strategie, die Entwicklung zu vereinfachen. Es wird erwartet, das JSF 2.0 Teil des zukünftigen Java EE 6 (JSR-316) wird.

Die bekanntesten Implementierungen der JSF Spezifikation sind die Referenzimplimentierung (RI) von Sun (JSF Projekt auf java.net) und Apache MyFaces. Während Sun’s RI schon seit einiger Zeit und einigen Wartungsreleases JSF 1.2 implementiert, hat MyFaces erst im Juli 2007 nachgezogen. Dafür hat MyFaces einige erweiterte und zusätzliche UI Komponenten.

Zahlreiche verfügbare Komponenten-Bibliotheken sind ein weiterer Vorteil von JSF. Alleine unter dem Dach von Apache MyFaces firmieren drei Varianten: Tomahawk, Tobago und Trinidad. Letzteres basiert auf dem Oracle ADF Projekt und wurde an die Apache Foundation übergeben. JBoss RichFaces (Online Demo) war zuvor bekannt als Exadel Rich Faces und basiert auf dem hauseigenen AJAX4JSF (A4J), einem AJAX Framework für JSF Komponenten. ICEface (Online Demo) ist eine weitere beliebte Bibliothek von AJAX-fähigen Komponenten. Alle erwähnten Komponenten-Bibliotheken sind Open-Source.

JSF unterstützt neben JSPs auch alternative View-Technologien. Facelets sind eine sehr beliebte Alternative und kann JSPs komplett ersetzen. Facelets sind derzeit nicht Teil des JSF/JEE Standards, aber es wird diskutiert ob sie Bestandteil von JSF 2.0 werden. Templating ähnlich wie Tiles und Tapestry ist ein zentrales Konzept von Facelets. Es erlaubt die Bestandteile von Webseiten aufzuteilen (typischerweise Header, Navigation, Content und Footer) und kann somit die Entwicklung modularer und einfacher machen. Nicht zuletzt weil die Kombination von JSP mit JSF (insbesondere JSF 1.1) nicht ganz unproblematisch ist, vertreten viele die Ansicht, dass Facelets besser zu JSF passt.

Insgesamt ist das Umfeld von JSF sehr vielfältig und lebendig. Einsteiger können langsam starten, zum Beispiel mit der Referenzimplementierung von Sun um mit den grundlegenden Komponenten erste Erfahrungen zu sammeln. Eine gute IDE Unterstützung ist besonders am Anfang sehr hilfreich. Netbeans mit dem Visual Web Pack ist sehr empfehlenswert – auch ein Tutorial zu Facelets ist vorhanden. Eclipse mit der Web Tools Platform 2.0 bieten eine vergleichsweise magere JSF Unterstützung an. Wesentlich interessanter ist der Ausblick auf die JBoss Tools, die derzeit noch im Beta Stadium sind (siehe JBoss Tools 2 Beta 3). Weitere IDEs mit JSF Unterstützung sind Weblogic Workshop (aktuell in Version 10.1 nur JSF 1.1), MyEclipse und JDeveloper.

3 Antworten zu “Die JSF Landschaft im Überblick”
  1. JSF Performance @ jars.de - Java und Technologie sagt:

    [...] Siehe auch: Die JSF Landschaft im Überblick [...]

  2. RichFaces 3.1 - jars.de - Java und Technologie sagt:

    [...] ist eine beliebte JSF Komponentenbibliothek von JBoss/Exadel mit umfangreichen AJAX Featuren. Mit Version 3.1 wurde jetzt auch AJAX4JSF [...]

  3. Dorian Alcacers Blog » Blog Archive » A gentle instruction to Java Server Faces sagt:

    [...] Die JSF Landschaft im Überblick, aktuell am 07.11.2007 [...]