JSF-Implementierung Apache MyFaces 2.0 erschienen

Die populäre Apache-Implementierung der Visualisualisierungstechnik JavaServer Faces führt Facelets ein und enthält zum ersten Mal eine JavaScript-Bibliothek als fixen Bestandteil der Technik.

In Pocket speichern vorlesen Druckansicht 42 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Alexander Neumann

Rund ein Dreivierteljahr nach der finalen Verabschiedung der endgültigen Version der JSF-2.0-Spezifikation (JSR 314) im Juli 2009 ist jetzt das finale Release der Apache-Implementierung MyFaces 2.0.0 erschienen. Die wahrscheinlich wichtigste Neuerung ist der Einzug der View-Handler-Technik Facelets in den JSF-Standard. Außerdem wurde das Konzept der Seitendeklarationssprachen (View Declaration Languages, kurz VDL) geschaffen, das ein Einbinden einer ebensolchen Sprache einfach und standardisiert ermöglicht. Weiterhin werden Java Server Pages (JSPs) nur noch als Altlast angesehen, was sich vor allem dadurch äußert, dass keine der neuen Funktionen, die im Zusammenhang mit den VDLs stehen, für JSPs implementiert ist.

Der Einzug von AJAX in die JSF-2.0-Spezifikation ist eine weitere signifikante Neuerung. Bis jetzt war es dem Entwickler überlassen, AJAX mit JSF zu verheiraten. Nun aber ist zum ersten Mal eine JavaScript-Bibliothek fixer Bestandteil der Spezifikation. Alle JSF-Komponenten können nun mit der JavaScript-Funktion jsf.ajax.request() beziehungsweise <f:ajax> AJAX-Anfragen durchführen. Serverseitig werden die Anfragen speziell behandelt, und es wird nur der für die Anfrage wichtige Teil an Komponenten bearbeitet.

Eine für jeden Java-Entwickler erfreuliche Neuerung ist die Project-Stage. Diese Systemvariable, die vergleichbar mit RAILS_ENV von Rails ist, gibt dem Framework an, in welchem Stadium sich das Projekt befindet. Mögliche Werte sind "Development", "Production", "SystemTest" und "UnitTest". Ist die Project-Stage beispielsweise auf "Development" gesetzt, lassen sich dem Entwickler erweiterte Debugging- und Fehlerinformationen bereitstellen.

Eine weitere neue Funktion sind die Composite Components. Sie ermöglichen es Entwicklern, mit einer einzigen Facelet-Datei auf einfache Weise eine komplette JSF-Komponente zu erzeugen. Dadurch wurde ein großer Kritikpunkt von JSF – die Komplexität der Komponentenerstellung – aus der Welt geschaffen.

URLs als Lesezeichen abzuspeichern ist ein weiteres neues Feature von MyFaces 2.0. Bis jetzt waren jegliche JSF-Anfragen POST-Requests. Durch die Einführung von <f:viewParam> lassen sich Anfrage-Parameter wie Eingabekomponenten behandeln und mit <h:link> sowie <h:button> ist es möglich, nur mit GET-Requests zu arbeiten.

Ebenfalls neu sind die standardisierten APIs zur Fehlerbehandlung und zum Laden von Ressourcen, der Einzug der metadatenbasierten Validierung (Bean Validation) und die Einführung von System-Events. Zudem wurden der Navigationsmechanismus erweitert und das Speichern der Zustände aller Komponenten optimiert sowie die vorhandenen Scopes um View- und Flash-Scope ergänzt. Um den XML-Konfigurationsaufwand zu minimieren, haben die Entwickler außerdem zahlreiche Annotationen eingeführt. So kann man nun zum Beispiel eine Managed-Bean mit Scope Session über @ManagedBean und @SessionScoped konfigurieren. (Jakob Korherr, Apache MyFaces Committer) (ane)