JSF für Einsteiger - 2 Tage
Ernst Fastl, 26.- 27. September 2007
Am Anfang des Kurses steht eine Geschichte der Webentwicklung mit Java – welche Technologien folgen in welcher Form aufeinander ab; wie hängen die einzelnen Standards in der Java-Webentwicklung zusammen.
Die Geschichte der Webentwicklung mit Java bringt uns zum Standard JavaServer Faces – es folgt eine Einführung in JavaServer Faces (kurz JSF), und darüber, wie mit diesem Standard Webentwicklung erfolgen kann (Beispiel 1: Hello World in JSF).
Nach der Einführung wenden wir uns der Konfiguration von JSF-Anwendungen zu: wie kann welcher Teil einer JSF-Web-Anwendung konfiguriert werden, und wie legt der Entwickler überhaupt die Basis für eine JSF Webanwendung fest.
Nach dieser Klärung der Grundlagen wenden wir uns den weiterführenden JSF Konzepten zu – im Ablauf sprechen wir über die wichtigsten Bereiche des JSF-Standards und insbesondere über die Konvertierung und die Validierung von Benutzereingaben mit JSF. Dazu werden wir zwei Beispiele erarbeiten, eines mit Standardvalidatoren und Konvertern, und ein zweites mit benutzerdefinierten Konvertern und Validatoren. Eine Erklärung zu Events, EventListenern und Messages wird folgen, bevor wir ein erweitertes Beispiel zu Ereignissen im Sinne von Aktionen angehen (Beispiel 4: Actions).
Im nächsten Kapitel beschäftigen wir uns mit den Standardkomponenten in JavaServer Faces – welche sind vorhanden, welche netten Zusatzkomponenten gibt es in Bibliotheken, die gut zu diesen Standardkomponenten passen. Insbesondere werden wir zu diesem Thema ein Beispiel zur JSF DataTable und eines zur Listenauswahl in JSF durchführen.
Danach beschäftigen wir uns mit dem Kernkonzept von JSF: dem JSF Request Lifecycle – seine sechs Phasen, der Ablauf, und die Veränderung dieses LifeCycles werden intensiv besprochen. Zu diesem LifeCycle werden wir verschiedenste Beispiele durchführen, um den LifeCycle klar verständlich zu machen.
Inhaltsübersicht:
- Geschichte der Webentwicklung mit Java
- Einführung in JSF und Apache MyFaces
- Beispiel 1: Hello World in JSF
- Konfiguration von JSF Applikationen
- Weiterführende JSF Konzepte
- Input Validierung und Konvertierung
- Beispiel 2: Einfache Validierung und Konvertierung
- Beispiel 3: Direkte Konvertierung und Validierung
- Events, EventListener und Messages
- Beispiel 4: Actions
- Standardkomponenten in JSF
- Beispiel 5: DataTable
- Beispiel 6: Auswahlboxen
- JSF Request Lifecycle
- Beispiel 7: Der Ablauf des Lifecycles im Source-Code
- Beispiel 8: Das Immediate AttributBeispiel 9: renderResponse / responseComplete
- Beispiel 10: Phase Listener
In zwei kleinen Teilbereichen werden wir über die Unified Expression Language und über den FacesContext sprechen – und ein kleines Beispiel zur Unified EL durchführen; die weitergehende Eigenschaften der EL zeigt.
Im Bereich Scoping sprechen wir über die Lebenszeit von Managed-Beans – wie lange bleiben Managed Beans im Speicher, für wie viele Benutzer gleichzeitig sind sie verfügbar; welcher Scope ist in Webanwendungen optimal. Insbesondere werden wir dabei die Lücke zwischen Request und Session-Scope mit der Einführung eines Flash und Conversation-Scope Konzepts schließen.
Eine wichtige Eigenschaft von JSF ist die Erweiterbarkeit, und damit die Unabhängigkeit von der Seitendefinitionssprache. Im Standard wird hier JSP eingesetzt; es ist aber möglich, stattdessen andere Seitendefinitionssprachen wie beispielsweise Facelets zu verwenden. Wir werden uns neben einer umfassenden Einführung in Facelets das Templating mit Facelets näher ansehen, und die Erstellung von leichtgewichtigen Komponenten betrachten.
Schließlich erfolgt eine Einführung in die Komponentenbibliothek Apache MyFaces Trinidad – welche Komponenten sind in dieser Bibliothek verfügbar, wie arbeiten sie zusammen, was sind die grundlegenden Konzepte von Trinidad; und wie lässt sich Trinidad für die eigenen Zwecke einsetzen und erweitern. Ein Beispiel dabei wir die Verwendung von AJAX mit Trinidad sein.
Inhaltsübersicht:
- Unified Expression Language
- Beispiel 6a: Ausgabe des Wertes einer Select-Komponente über eine Hashmap
- Faces Context / External Context
- Scoping in JSF
- Facelets
- Beispiel 12: Facelets Templating
- Beispiel 13: Facelets Komponenten
- Tag Handler
- Apache MyFaces/Apache Trinidad




