1 Einführung in JavaServer Faces1 Einführung in JavaServer Faces
1.1 Kurzgeschichte der Webentwicklung1.1 Kurzgeschichte der Webentwicklung
1.2 JSF 2.0 im Überblick1.2 JSF 2.0 im Überblick
1.3 Das erste JSF-Beispiel1.3 Das erste JSF-Beispiel
1.3.1 Erstellen eines JSF-Projekts1.3.1 Erstellen eines JSF-Projekts
1.3.2 Starten der Anwendung1.3.2 Starten der Anwendung
1.3.3 Entwicklung mit Eclipse und JBoss-Tools1.3.3 Entwicklung mit Eclipse und JBoss-Tools
1.3.3.1 Arbeiten mit Eclipse und JBoss-Tools1.3.3.1 Arbeiten mit Eclipse und JBoss-Tools
1.3.3.2 Starten der Anwendung1.3.3.2 Starten der Anwendung
1.4 MyGourmet 1: Einführung anhand eines Beispiels1.4 MyGourmet 1: Einführung anhand eines Beispiels
2 Die Konzepte von JavaServer Faces2 Die Konzepte von JavaServer Faces
2.1 Aufgaben der JSF-Technologie2.1 Aufgaben der JSF-Technologie
2.2 JavaServer Faces in Schlagworten2.2 JavaServer Faces in Schlagworten
2.3 MyGourmet 1: Schlagworte im Einsatz2.3 MyGourmet 1: Schlagworte im Einsatz
2.4 Managed-Beans2.4 Managed-Beans
2.4.1 Managed-Beans -- die Grundlagen2.4.1 Managed-Beans -- die Grundlagen
2.4.2 Konfiguration von Managed-Beans2.4.2 Konfiguration von Managed-Beans
2.4.3 Managed-Properties2.4.3 Managed-Properties
2.4.4 Die Rolle von Managed-Beans2.4.4 Die Rolle von Managed-Beans
2.5 Die Unified Expression Language2.5 Die Unified Expression Language
2.5.1 Unified-EL in MyGourmet 12.5.1 Unified-EL in MyGourmet 1
2.5.2 Die Unified-EL im Detail2.5.2 Die Unified-EL im Detail
2.5.3 Erweiterungen der Unified-EL in Java EE 62.5.3 Erweiterungen der Unified-EL in Java EE 6
2.6 Lebenszyklus einer HTTP-Anfrage in JSF2.6 Lebenszyklus einer HTTP-Anfrage in JSF
2.6.1 Ändern des Lebenszyklus -- immediate-Attribut2.6.1 Ändern des Lebenszyklus -- immediate-Attribut
2.6.1.1 immediate-Attribut für Eingabekomponenten2.6.1.1 immediate-Attribut für Eingabekomponenten
2.6.1.2 immediate-Attribut für Steuerkomponenten2.6.1.2 immediate-Attribut für Steuerkomponenten
2.6.2 MyGourmet 2: immediate-Attribute2.6.2 MyGourmet 2: immediate-Attribute
2.7 Navigation2.7 Navigation
2.8 Ereignisse und Ereignisbehandlung2.8 Ereignisse und Ereignisbehandlung
2.8.1 Value-Change-Events2.8.1 Value-Change-Events
2.8.2 Action-Events2.8.2 Action-Events
2.8.3 MyGourmet 3: Ereignisse2.8.3 MyGourmet 3: Ereignisse
2.8.4 Phase-Events2.8.4 Phase-Events
2.8.5 MyGourmet 4: Phase-Listener2.8.5 MyGourmet 4: Phase-Listener
2.9 Seitendeklarationssprachen2.9 Seitendeklarationssprachen
2.9.1 Vorteile von Facelets gegenüber JSP2.9.1 Vorteile von Facelets gegenüber JSP
2.9.2 Seitendeklarationssprachen im Einsatz2.9.2 Seitendeklarationssprachen im Einsatz
2.10 Verwendung des ID-Attributs in JavaServer Faces2.10 Verwendung des ID-Attributs in JavaServer Faces
2.11 Konvertierung2.11 Konvertierung
2.11.1 Standardkonverter2.11.1 Standardkonverter
2.11.2 Benutzerdefinierte Konverter2.11.2 Benutzerdefinierte Konverter
2.11.3 MyGourmet 5: Konvertierung2.11.3 MyGourmet 5: Konvertierung
2.12 Validierung2.12 Validierung
2.12.1 Bean-Validation nach JSR-3032.12.1 Bean-Validation nach JSR-303
2.12.1.1 Benutzerdefinierte Constraints mit Bean-Validation2.12.1.1 Benutzerdefinierte Constraints mit Bean-Validation
2.12.2 Standardvalidatoren2.12.2 Standardvalidatoren
2.12.3 Benutzerdefinierte Validatoren2.12.3 Benutzerdefinierte Validatoren
2.12.4 MyGourmet 6: Validierung2.12.4 MyGourmet 6: Validierung
2.13 Nachrichten2.13 Nachrichten
2.14 Internationalisierung2.14 Internationalisierung
2.14.1 Ermittlung des Lokalisierungscodes2.14.1 Ermittlung des Lokalisierungscodes
2.14.2 Internationalisierung der JSF-Nachrichten2.14.2 Internationalisierung der JSF-Nachrichten
2.14.2.1 Nachrichten für Bean-Validation2.14.2.1 Nachrichten für Bean-Validation
2.14.3 Internationalisierung der Anwendungstexte2.14.3 Internationalisierung der Anwendungstexte
2.14.4 MyGourmet 7: Internationalisierung2.14.4 MyGourmet 7: Internationalisierung
3 Standard-JSF-Komponenten3 Standard-JSF-Komponenten
3.1 Basisfunktionen der Core-Tag-Library3.1 Basisfunktionen der Core-Tag-Library
3.2 UIForm3.2 UIForm
3.3 UICommand3.3 UICommand
3.4 UIData und UIColumn3.4 UIData und UIColumn
3.5 UIGraphic3.5 UIGraphic
3.6 UIOutput3.6 UIOutput
3.6.1 Tag zur Textausgabe h:outputText3.6.1 Tag zur Textausgabe h:outputText
3.6.2 Labelausgabe-Komponente h:outputLabel3.6.2 Labelausgabe-Komponente h:outputLabel
3.6.3 Linkkomponente h:outputLink3.6.3 Linkkomponente h:outputLink
3.6.4 Parametrisierbares Textausgabefeld h:outputFormat3.6.4 Parametrisierbares Textausgabefeld h:outputFormat
3.7 UIInput3.7 UIInput
3.7.1 Texteingabefeld h:inputText3.7.1 Texteingabefeld h:inputText
3.7.2 Passworteingabefeld h:inputSecret3.7.2 Passworteingabefeld h:inputSecret
3.7.3 Mehrzeiliges Texteingabefeld h:inputTextarea3.7.3 Mehrzeiliges Texteingabefeld h:inputTextarea
3.7.4 Verstecktes Eingabefeld h:inputHidden3.7.4 Verstecktes Eingabefeld h:inputHidden
3.8 UIMessage3.8 UIMessage
3.9 UISelectBoolean3.9 UISelectBoolean
3.10 UISelectOne3.10 UISelectOne
3.11 UISelectMany3.11 UISelectMany
3.11.1 Auswahlfeld h:selectManyCheckbox3.11.1 Auswahlfeld h:selectManyCheckbox
3.11.2 Listenfeld h:selectManyListbox3.11.2 Listenfeld h:selectManyListbox
3.11.3 Menüfeld h:selectManyMenu3.11.3 Menüfeld h:selectManyMenu
3.12 UISelectItem3.12 UISelectItem
3.13 UISelectItems3.13 UISelectItems
3.14 UIPanel3.14 UIPanel
3.15 UIViewRoot3.15 UIViewRoot
3.16 UIOutcomeTarget3.16 UIOutcomeTarget
3.17 UIViewParameter3.17 UIViewParameter
3.18 Ressourcenbezogene Komponenten3.18 Ressourcenbezogene Komponenten
3.19 Verhaltens-Interfaces3.19 Verhaltens-Interfaces
3.20 MyGourmet 8: Standardkomponenten3.20 MyGourmet 8: Standardkomponenten
3.21 MyGourmet 9: UIData und Detailansicht3.21 MyGourmet 9: UIData und Detailansicht
4 Advanced JSF4 Advanced JSF
4.1 Project-Stage4.1 Project-Stage
4.2 Advanced Facelets4.2 Advanced Facelets
4.2.1 Wiederverwendung von Inhalten mit Facelets4.2.1 Wiederverwendung von Inhalten mit Facelets
4.2.2 Tag-Bibliotheken mit Facelets erstellen4.2.2 Tag-Bibliotheken mit Facelets erstellen
4.2.2.1 Definition einer EL-Funktion4.2.2.1 Definition einer EL-Funktion
4.2.2.2 Definition eines Konverter-Tags4.2.2.2 Definition eines Konverter-Tags
4.2.2.3 Definition eines Validator-Tags4.2.2.3 Definition eines Validator-Tags
4.2.3 MyGourmet 10: Advanced Facelets4.2.3 MyGourmet 10: Advanced Facelets
4.3 Templating4.3 Templating
4.3.1 Mehrstufiges Templating4.3.1 Mehrstufiges Templating
4.3.2 Mehrere Templates pro Seite4.3.2 Mehrere Templates pro Seite
4.3.3 MyGourmet 11: Templating mit Facelets4.3.3 MyGourmet 11: Templating mit Facelets
4.4 Bookmarks und GET-Anfragen in JSF4.4 Bookmarks und GET-Anfragen in JSF
4.4.1 Navigation mit h:link und h:button4.4.1 Navigation mit h:link und h:button
4.4.2 View-Parameter4.4.2 View-Parameter
4.4.2.1 Positionierung von f:metadata4.4.2.1 Positionierung von f:metadata
4.4.2.2 Lebenszyklus mit View-Parametern4.4.2.2 Lebenszyklus mit View-Parametern
4.4.3 MyGourmet 12: View-Parameter und GET4.4.3 MyGourmet 12: View-Parameter und GET
4.5 Verwaltung von Ressourcen4.5 Verwaltung von Ressourcen
4.5.1 Identifikation von Ressourcen -- Teil 14.5.1 Identifikation von Ressourcen -- Teil 1
4.5.2 Ressourcen im Einsatz4.5.2 Ressourcen im Einsatz
4.5.3 Positionierung von Ressourcen4.5.3 Positionierung von Ressourcen
4.5.4 Identifikation von Ressourcen -- Teil 24.5.4 Identifikation von Ressourcen -- Teil 2
4.5.5 Ressourcen in MyGourmet 124.5.5 Ressourcen in MyGourmet 12
4.6 Die JSF-Umgebung: Faces-Context und External-Context4.6 Die JSF-Umgebung: Faces-Context und External-Context
4.7 Konfiguration von JavaServer Faces4.7 Konfiguration von JavaServer Faces
4.7.1 Die Webkonfigurationsdatei web.xml4.7.1 Die Webkonfigurationsdatei web.xml
4.7.1.1 Faces-Servlet und Mapping4.7.1.1 Faces-Servlet und Mapping
4.7.1.2 Kontextparameter4.7.1.2 Kontextparameter
4.7.2 Die JSF-Konfigurationsdatei -- faces-config.xml4.7.2 Die JSF-Konfigurationsdatei -- faces-config.xml
4.7.2.1 Anwendungseinstellungen -- application4.7.2.1 Anwendungseinstellungen -- application
5 Die eigene JSF-Komponente5 Die eigene JSF-Komponente
5.1 Kompositkomponenten5.1 Kompositkomponenten
5.1.1 Aufbau einer Kompositkomponente5.1.1 Aufbau einer Kompositkomponente
5.1.1.1 Der Bereich cc:interface5.1.1.1 Der Bereich cc:interface
5.1.1.2 Der Bereich cc:implementation5.1.1.2 Der Bereich cc:implementation
5.1.2 Die Komponente mc:panelBox5.1.2 Die Komponente mc:panelBox
5.1.3 Die Komponente mc:dataTable5.1.3 Die Komponente mc:dataTable
5.1.4 Die Komponente mc:collapsiblePanel5.1.4 Die Komponente mc:collapsiblePanel
5.1.5 Die Komponente mc:inputSpinner5.1.5 Die Komponente mc:inputSpinner
5.2 Klassische Komponenten5.2 Klassische Komponenten
5.2.1 Vorarbeiten: Komponentenfamilie, Komponententyp und Renderertyp definieren5.2.1 Vorarbeiten: Komponentenfamilie, Komponententyp und Renderertyp definieren
5.2.1.1 Die Wahl der Basisklasse5.2.1.1 Die Wahl der Basisklasse
5.2.1.2 Komponententyp, Komponentenfamilie und Renderertyp5.2.1.2 Komponententyp, Komponentenfamilie und Renderertyp
5.2.2 Komponentenklasse schreiben5.2.2 Komponentenklasse schreiben
5.2.2.1 Komponentenattribute5.2.2.1 Komponentenattribute
5.2.2.2 State-Saving5.2.2.2 State-Saving
5.2.2.3 Komposition klassischer Komponenten5.2.2.3 Komposition klassischer Komponenten
5.2.3 Schreiben der Rendererklasse5.2.3 Schreiben der Rendererklasse
5.2.3.1 Rendern (Encoding)5.2.3.1 Rendern (Encoding)
5.2.3.2 Decodierung (Decoding)5.2.3.2 Decodierung (Decoding)
5.2.3.3 Rendern von Ressourcen5.2.3.3 Rendern von Ressourcen
5.2.4 Registrieren der Komponenten- und der Rendererklasse5.2.4 Registrieren der Komponenten- und der Rendererklasse
5.2.5 Tag-Definition schreiben5.2.5 Tag-Definition schreiben
5.2.6 Tag-Behandlungsklasse schreiben5.2.6 Tag-Behandlungsklasse schreiben
5.2.7 Tag-Bibliothek einbinden5.2.7 Tag-Bibliothek einbinden
5.3 Kompositkomponenten und klassischen Komponenten kombinieren5.3 Kompositkomponenten und klassischen Komponenten kombinieren
5.4 Alternativen zur eigenen Komponente5.4 Alternativen zur eigenen Komponente
5.4.1 Austausch der Rendererklasse5.4.1 Austausch der Rendererklasse
5.4.2 Austausch der Komponentenklasse5.4.2 Austausch der Komponentenklasse
5.4.3 Benutzerdefinierte Komponente aus den Backing-Beans-- Component-Binding5.4.3 Benutzerdefinierte Komponente aus den Backing-Beans-- Component-Binding
5.5 Überschreiben von JSF-Kernklassen5.5 Überschreiben von JSF-Kernklassen
5.6 MyGourmet 13: Komponenten und Services5.6 MyGourmet 13: Komponenten und Services
5.7 Die eigene Komponentenbibliothek5.7 Die eigene Komponentenbibliothek
5.8 MyGourmet 13 mit Komponentenbibliothek5.8 MyGourmet 13 mit Komponentenbibliothek
6 Ajax und JSF6 Ajax und JSF
6.1 Einführung in Ajax -- "`Asynchronous JavaScript And XML"6.1 Einführung in Ajax -- "`Asynchronous JavaScript And XML"
6.2 Ajax in JSF 2.06.2 Ajax in JSF 2.0
6.2.1 Ein erstes Beispiel mit f:ajax6.2.1 Ein erstes Beispiel mit f:ajax
6.2.2 f:ajax im Einsatz6.2.2 f:ajax im Einsatz
6.2.3 JavaScript-API6.2.3 JavaScript-API
6.2.3.1 Senden von Ajax-Anfragen6.2.3.1 Senden von Ajax-Anfragen
6.2.3.2 Status und Fehler von Ajax-Anfragen behandeln6.2.3.2 Status und Fehler von Ajax-Anfragen behandeln
6.2.4 Partieller JSF-Lebenszyklus6.2.4 Partieller JSF-Lebenszyklus
6.3 Ajax in Kompositkomponenten6.3 Ajax in Kompositkomponenten
6.4 Eigene Ajax-Komponenten6.4 Eigene Ajax-Komponenten
6.4.1 Die Kompositkomponente ajaxStatus6.4.1 Die Kompositkomponente ajaxStatus
6.4.2 Die Kompositkomponente ajaxPoll6.4.2 Die Kompositkomponente ajaxPoll
6.5 MyGourmet 14: Ajax6.5 MyGourmet 14: Ajax
6.6 Werkzeuge für den Ajax-Entwickler6.6 Werkzeuge für den Ajax-Entwickler
6.6.1 Firebug6.6.1 Firebug
6.6.1.1 Analyse des DOM-Baums6.6.1.1 Analyse des DOM-Baums
6.6.1.2 JavaScript-Debugging6.6.1.2 JavaScript-Debugging
6.6.2 HTTP-Debugger6.6.2 HTTP-Debugger
6.6.3 Web Developer Toolbar6.6.3 Web Developer Toolbar
7 Das Ökosystem von JavaServer Faces7 Das Ökosystem von JavaServer Faces
7.1 Spring-Framework7.1 Spring-Framework
7.1.1 Konfiguration von Spring7.1.1 Konfiguration von Spring
7.1.2 Dependency-Injection mit Spring und JSR-3307.1.2 Dependency-Injection mit Spring und JSR-330
7.1.3 MyGourmet 15: Spring-Integration7.1.3 MyGourmet 15: Spring-Integration
7.2 Apache MyFaces Orchestra7.2 Apache MyFaces Orchestra
7.2.1 Konversationen7.2.1 Konversationen
7.2.1.1 Lebensdauer einer Konversation7.2.1.1 Lebensdauer einer Konversation
7.2.1.2 Konfiguration von Orchestra7.2.1.2 Konfiguration von Orchestra
7.2.1.3 Konversationen im Einsatz7.2.1.3 Konversationen im Einsatz
7.2.2 Persistenz7.2.2 Persistenz
7.2.3 View-Controller7.2.3 View-Controller
7.2.4 MyGourmet 16: Apache MyFaces Orchestra7.2.4 MyGourmet 16: Apache MyFaces Orchestra
7.3 Komponentenbibliotheken7.3 Komponentenbibliotheken
8 MyGourmet Fullstack -- JSF, Spring, Orchestra und JPA kombiniert8 MyGourmet Fullstack -- JSF, Spring, Orchestra und JPA kombiniert
8.1 Architektur von MyGourmet Fullstack8.1 Architektur von MyGourmet Fullstack
8.1.1 Entitäten8.1.1 Entitäten
8.1.2 Datenzugriffsschicht8.1.2 Datenzugriffsschicht
8.1.3 Serviceschicht8.1.3 Serviceschicht
8.1.4 Präsentationsschicht8.1.4 Präsentationsschicht
8.2 Konfiguration der Anwendung8.2 Konfiguration der Anwendung
8.2.1 Konfiguration von JPA8.2.1 Konfiguration von JPA
8.2.2 Konfiguration von Orchestra8.2.2 Konfiguration von Orchestra
9 Trinidad - Die Komponentenbibliothek9 Trinidad - Die Komponentenbibliothek
9.1 Trinidad - Ein Überblick9.1 Trinidad - Ein Überblick
9.2 Installation und Konfiguration9.2 Installation und Konfiguration
9.2.1 Dependencies9.2.1 Dependencies
9.2.2 Konfiguration9.2.2 Konfiguration
9.2.2.1 web.xml - Grundkonfiguration9.2.2.1 web.xml - Grundkonfiguration
9.2.2.2 Weitere web.xml Kontextparameter9.2.2.2 Weitere web.xml Kontextparameter
9.2.2.3 trinidad-config.xml9.2.2.3 trinidad-config.xml
9.3 myGourmet meets Trinidad9.3 myGourmet meets Trinidad
9.3.1 Ausgangslage9.3.1 Ausgangslage
9.3.2 Start von MyGourmet mit Trinidad9.3.2 Start von MyGourmet mit Trinidad
9.4 Ajax/Partial Page Rendering (PPR) in Action9.4 Ajax/Partial Page Rendering (PPR) in Action
9.4.1 PPR mit Attributen9.4.1 PPR mit Attributen
9.4.2 PPR per RequestContext im Source Code9.4.2 PPR per RequestContext im Source Code
9.4.3 PPR über Attribute vs. PPR mit RequestContext (per Source Code)9.4.3 PPR über Attribute vs. PPR mit RequestContext (per Source Code)
9.4.4 PPR und JSF Namingcontainer9.4.4 PPR und JSF Namingcontainer
9.4.5 PPR Funktionalität ohne zusätzlicher Konfiguration9.4.5 PPR Funktionalität ohne zusätzlicher Konfiguration
9.4.6 Weitere PPR Hints9.4.6 Weitere PPR Hints
9.5 Trinidad Dialog Framework in Action9.5 Trinidad Dialog Framework in Action
9.5.1 Dialoge im gleichen Fenster9.5.1 Dialoge im gleichen Fenster
9.5.2 Dialoge als Popup9.5.2 Dialoge als Popup
9.5.3 Leichtgewichtige Dialoge9.5.3 Leichtgewichtige Dialoge
9.5.4 Dialog - das Finish9.5.4 Dialog - das Finish
9.6 PageFlowScope in Dialogabläufen9.6 PageFlowScope in Dialogabläufen
9.7 Clientseitige Konvertierung und Validierung9.7 Clientseitige Konvertierung und Validierung
10 Tobago -- JSF und mehr10 Tobago -- JSF und mehr
10.1 Tobago -- ein Überblick10.1 Tobago -- ein Überblick
10.2 Tobago und MyGourmet10.2 Tobago und MyGourmet
10.3 Tobago-Controls10.3 Tobago-Controls
10.3.1 Tobago tc:in/tx:in10.3.1 Tobago tc:in/tx:in
10.3.2 Tobago UICommand10.3.2 Tobago UICommand
10.3.3 Tobago tc:tabGroup10.3.3 Tobago tc:tabGroup
10.3.4 Tobago tc:menu10.3.4 Tobago tc:menu
10.3.5 Tobago tc:toolBar10.3.5 Tobago tc:toolBar
10.3.6 Tobago tc:sheet10.3.6 Tobago tc:sheet
10.4 Partial-Rendering mit Tobago10.4 Partial-Rendering mit Tobago
10.5 Layout in Tobago10.5 Layout in Tobago
10.5.1 Grid-Layout10.5.1 Grid-Layout
10.6 Themes und Markup10.6 Themes und Markup
10.6.1 Themes in Tobago10.6.1 Themes in Tobago
10.6.2 Das Ressourcenmanagement in Tobago10.6.2 Das Ressourcenmanagement in Tobago
10.6.3 Markup in Tobago10.6.3 Markup in Tobago
10.7 Zusammenfassung und Ausblick10.7 Zusammenfassung und Ausblick
11 Eclipse und JBoss-Tools11 Eclipse und JBoss-Tools
11.1 Installation der JBoss-Tools11.1 Installation der JBoss-Tools
11.2 Eclipse und MyGourmet11.2 Eclipse und MyGourmet
12 Eine kurze Einführung in Maven12 Eine kurze Einführung in Maven
12.1 Installation von Maven 212.1 Installation von Maven 2
12.2 Maven und MyGourmet12.2 Maven und MyGourmet
12.3 Erstellen eines JSF-Projekts12.3 Erstellen eines JSF-Projekts
13 Autoren13 Autoren
13.1 Autoren und Beteiligte13.1 Autoren und Beteiligte
13.2 Weitere Mitwirkende13.2 Weitere Mitwirkende
14 Änderungshistorie14 Änderungshistorie
14.1 Version 1.0.5 (16. 9. 2011)14.1 Version 1.0.5 (16. 9. 2011)
14.2 Version 1.0.4 (8. 4. 2011)14.2 Version 1.0.4 (8. 4. 2011)
14.3 Version 1.0.3 (22. 12. 2010)14.3 Version 1.0.3 (22. 12. 2010)
14.4 Version 1.0.2 (28. 6. 2010)14.4 Version 1.0.2 (28. 6. 2010)
14.5 Version 1.0.1 (3. 2. 2010)14.5 Version 1.0.1 (3. 2. 2010)
14.6 Version 1.0 (20. 11. 2009)14.6 Version 1.0 (20. 11. 2009)