JSF 2.2 – Quo vadis?
File Upload
Bisher gab es in JSF keine Komponente für File Uploads, was an der mangelnden Unterstützung für multipart/form-data in der Servlet-Spezifikation (älter als Version 3.0) lag. Ab Servlet-Version 3.0 (die seit JSF 2.1 unterstützt wird) wird dieser Mangel behoben. In JSF 2.2 plant man, eine File-Upload-Komponente einzuführen, die mittels
Faces Flows
Die Faces Flows sind ein Feature, welches hauptsächlich von den ADF Task Flows und Spring WebFlow inspiriert wurde. In JSF spielt die View (auch Page genannt) eine zentrale Rolle, jedoch ist es häufiger der Fall, dass mehrere Views einen logischen Zusammenhang bilden können. Es gab vor JSF 2.2 keine Möglichkeit mehrere Views modular zu einer logischen Einheit zusammenzufassen, was zu einer relativ monolithischen Anwendungsstruktur führen kann. Dies macht gerade größere JSF-Anwendungen zu komplexen unstrukturierten Gebilden. Dieses Problem lösen die so genannten Faces Flows. Ein Faces Flow definiert dabei eine Menge von Flow Nodes, die unterschiedlichen Typs sein können. Ein Node kann z. B. eine View/Page sein, ein Methodenaufruf, ein NavigationRuleSet oder aber ein weiterer Faces Flow. Flow Nodes sind über Kanten miteinander verbunden, die auch Control Flow Cases genannt werden. Weiterhin gibt es Control Flow Rules, die die Regeln für die Übergänge von einem Node auf den nächsten beschreiben. Ein Bounded Faces Flow ist ein spezieller Faces Flow mit der zusätzlichen Eigenschaft, einen Einstiegspunkt und 0 bis n Ausgangspunkte zu definieren. Insgesamt lässt sich mithilfe dieser Konzepte Kontrollfluss über mehrere Seiten hinweg beschreiben, was u. a. die Implementierung von Verhaltensbeschreibungen, wie man sie z. B. bei UML-Aktivitätsdiagrammen findet, erleichtert.
Weitere Neuerungen
UIData-Komponenten wie z. B. die HTMLDataTable unterstützen neuerdings auch das Collection Interface. Vorher musste man Sets zunächst in eine List umwandeln, um diese fehlerfrei in einer Data Table anzeigen zu können. Der Tag erhält ein neues Attribut delay, welches die Verzögerungszeit für clientseitiges AJAX Request Queuing spezifiziert. Werden mehrere AJAX Requests in diesem Zeitraum gesendet, wird nur der letzte an den Server geschickt. Der Sinn dieses Queuings ist es, den Server zu entlasten und z. B. Responses, die in der falschen Reihenfolge beim Client ankommen, zu vermeiden.
Fazit
Mit Version 2.2 werden einige wichtige Neuerungen in die JSF-Welt gebracht. Während einige Features wie View Actions schon in der Praxis erprobt sind und somit schnell spezifiziert werden konnten, sind wichtige Beiträge wie Faces Flows und Multi-Templating noch in den letzten Zügen der Spezifikationsphase. Dieser Artikel hat den momentanen Stand der Entwicklung von JSF 2.2 aufgezeigt und die wichtigsten Neuerungen herausgearbeitet. Final werden sich sicherlich noch Teile ändern, die „großen“ Ideen werden aber zum überwiegenden Teil erhalten bleiben.
Hinterlasse einen Kommentar