O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

JavaServer Faces 2.2, 3rd Edition

Book Description

Die Grundlagen des JavaServer-Faces-Standards werden auf einem für Einsteiger geeigneten Niveau erklärt und an einem durchgängigen Entwicklungsbeispiel erläutert. Ein Kickstart-Kapitel zeigt anhand eines kleinen Beispiels, wie einfach sich der Einstieg in JavaServer Faces (JSF) bewerkstelligen lässt. Begleitende Tipps & Tricks zeigen mögliche Probleme und deren Lösungen auf.Neben den Grundlagen und Neuerungen von JSF 2.2 werden auch Themen wie Facelets, Templating, Kompositkomponenten und die Verwendung von Ajax mit JSF praxisnah behandelt. Das Buch zeigt außerdem die Integration von JSF und CDI und stellt die Komponentenbibliothek PrimeFaces vor.

Table of Contents

  1. 1 Einführung in JavaServer Faces
  2. 1.1 Kurzgeschichte der Webentwicklung
  3. 1.1.1 Geschichte der Webentwicklung mit Java
  4. 1.1.2 Entstehung von JavaServer Faces
  5. 1.2 JSF 2.0 und 2.1 im Überblick
  6. 1.3 JSF 2.2 im Überblick
  7. 1.4 Das Ökosystem von JavaServer Faces
  8. 1.5 Das erste JSF-Beispiel
  9. 1.5.1 Softwareumgebung
  10. 1.5.2 Projektstruktur mit Maven
  11. 1.5.3 Hello World: das erste JSF-Projekt
  12. 1.5.4 Starten der Anwendung mit Maven
  13. 1.5.5 Entwicklung mit Eclipse
  14. Arbeiten mit Eclipse
  15. Starten der Anwendung mit Eclipse
  16. 1.6 MyGourmet 1: Einführung anhand eines Beispiels
  17. 2 Die Konzepte von JavaServer Faces
  18. 2.1 Aufgaben der JSF-Technologie
  19. 2.2 JavaServer Faces in Schlagworten
  20. 2.3 MyGourmet 1: Schlagworte im Einsatz
  21. 2.4 Managed-Beans
  22. 2.4.1 Managed-Beans – die Grundlagen
  23. 2.4.2 Konfiguration von Managed-Beans
  24. 2.4.3 Managed-Properties
  25. 2.4.4 Die Rolle von Managed-Beans
  26. 2.5 Die Unified Expression Language
  27. 2.5.1 Unified-EL in MyGourmet 1
  28. 2.5.2 Die Unified-EL im Detail
  29. 2.5.3 Erweiterungen der Unified-EL in Java EE 6
  30. 2.6 Lebenszyklus einer HTTP-Anfrage in JSF
  31. 2.6.1 Ändern des Lebenszyklus – immediate-Attribut
  32. immediate-Attribut für Eingabekomponenten
  33. immediate-Attribut für Befehlskomponenten
  34. 2.6.2 MyGourmet 2: immediate-Attribute
  35. 2.7 Navigation
  36. 2.8 Ereignisse und Ereignisbehandlung
  37. 2.8.1 Value-Change-Events
  38. 2.8.2 Action-Events
  39. 2.8.3 MyGourmet 3: Ereignisse
  40. 2.8.4 System-Events
  41. 2.8.5 Phase-Events
  42. 2.8.6 MyGourmet 4: Phase-Listener und System-Events
  43. Analyse des Lebenszyklus
  44. 2.9 Seitendeklarationssprachen
  45. 2.9.1 Vorteile von Facelets gegenüber JSP
  46. 2.9.2 Seitendeklarationssprachen im Einsatz
  47. 2.10 Verwendung des ID-Attributs in JSF
  48. 2.11 Konvertierung
  49. 2.11.1 Standardkonverter
  50. 2.11.2 Benutzerdefinierte Konverter
  51. 2.11.3 MyGourmet 5:Konvertierung
  52. 2.12 Validierung
  53. 2.12.1 Bean-Validation nach JSR-303
  54. Benutzerdefinierte Constraints mit Bean-Validation
  55. 2.12.2 Standardvalidatoren
  56. 2.12.3 Benutzerdefinierte Validatoren
  57. 2.12.4 MyGourmet 6: Validierung
  58. 2.13 Nachrichten
  59. 2.14 Internationalisierung
  60. 2.14.1 Ermittlung des Lokalisierungscodes
  61. 2.14.2 Internationalisierung der JSF-Nachrichten
  62. Nachrichten für Bean-Validation
  63. 2.14.3 Internationalisierung der Anwendungstexte
  64. 2.14.4 MyGourmet 7: Internationalisierung
  65. 3 Standard-JSF-Komponenten
  66. 3.1 Basisfunktionen der Core-Tag-Library
  67. Komponenten mit f:resetValues zurücksetzen
  68. 3.2 Formularkomponente
  69. 3.3 Befehlskomponenten
  70. 3.4 DataTable-Komponente
  71. 3.4.1 Erweiterte Konzepte von h:dataTable
  72. 3.4.2 Styling von h:dataTable
  73. 3.5 Ausgabekomponenten
  74. 3.5.1 Textausgabekomponenten
  75. Tag zur Textausgabe h:outputText
  76. Labelausgabe-Komponente h:outputLabel
  77. Linkkomponente h:outputLink
  78. Parametrisierbares Textausgabefeld h:outputFormat
  79. 3.5.2 Bildausgabekomponente
  80. 3.6 Eingabekomponenten
  81. 3.6.1 Texteingabefeld h:inputText
  82. 3.6.2 Passworteingabefeld h:inputSecret
  83. 3.6.3 Mehrzeiliges Texteingabefeld h:inputTextarea
  84. 3.6.4 Verstecktes Eingabefeld h:inputHidden
  85. 3.6.5 Dateiuploadfeld h:inputFile
  86. 3.7 Auswahlkomponenten
  87. 3.7.1 Boolesche Auswahl
  88. 3.7.2 Einfache Auswahl
  89. 3.7.3 Mehrfache Auswahl
  90. Auswahlfeld h:selectManyCheckbox
  91. Listenfeld h:selectManyListbox
  92. Menüfeld h:selectManyMenu
  93. 3.7.4 Definition der Auswahlmöglichkeiten
  94. Einzelne Auswahlmöglichkeit mit f:selectItem
  95. Mehrere Auswahlmöglichkeiten mit f:selectItems
  96. 3.8 Panel-Komponenten
  97. 3.9 UIViewRoot
  98. 3.10 Nachrichtenkomponenten
  99. 3.11 Komponenten zur GET-Navigation
  100. 3.12 Ressourcenbezogene Komponenten
  101. 3.13 Verhaltens-Interfaces
  102. 3.14 MyGourmet 8: Standardkomponenten
  103. 3.15 MyGourmet 9: UIData und Detailansicht
  104. 4 Advanced JSF
  105. 4.1 Project-Stage
  106. 4.2 Advanced Facelets
  107. 4.2.1 Wiederverwendung von Inhalten mit Facelets
  108. 4.2.2 Tag-Bibliotheken mit Facelets erstellen
  109. Definition einer EL-Funktion
  110. Definition eines Konverter-Tags
  111. Definition eines Validator-Tags
  112. 4.2.3 MyGourmet 10: Advanced Facelets
  113. 4.3 Templating
  114. 4.3.1 Mehrstufiges Templating
  115. 4.3.2 Mehrere Templates pro Seite
  116. 4.3.3 MyGourmet 11: Templating mit Facelets
  117. 4.4 Bookmarks und GET-Anfragen in JSF
  118. 4.4.1 Navigation mit h:link und h:button
  119. 4.4.2 View-Parameter
  120. Positionierung von f:metadata
  121. Lebenszyklus mit View-Parametern
  122. 4.4.3 View-Actions
  123. View-Actions im Vergleich zum System-Event PreRenderViewEvent
  124. 4.4.4 MyGourmet 12: GET-Unterstützung
  125. 4.5 Die JSF-Umgebung: Faces-Context und External-Context
  126. 4.6 Konfiguration von JavaServer Faces
  127. 4.6.1 Die Webkonfigurationsdatei web.xml
  128. Faces-Servlet und Mapping
  129. Kontextparameter
  130. 4.6.2 Die JSF-Konfigurationsdatei – faces-config.xml
  131. Anwendungseinstellungen – application
  132. 4.6.3 Konfiguration der Unified-EL
  133. 5 Verwaltung von Ressourcen
  134. 5.1 Identifikation von Ressourcen – Teil 1
  135. 5.2 Ressourcen im Einsatz
  136. 5.3 Positionierung von Ressourcen
  137. 5.4 Identifikation von Ressourcen – Teil 2
  138. 5.5 Ressourcen in MyGourmet 12
  139. 5.6 Resource-Library-Contracts
  140. 5.6.1 Ein erstes Beispiel
  141. Konfiguration des Contracts-Verzeichnisses
  142. 5.6.2 Ressourcen aus Resource-Library-Contracts
  143. 5.6.3 Zuordnung von Resource-Library-Contracts
  144. 5.6.4 Resource-Library-Contracts in Jar-Dateien
  145. 5.6.5 MyGourmet 12 mit Resource-Library-Contracts
  146. 6 Die eigene JSF-Komponente
  147. 6.1 Kompositkomponenten
  148. 6.1.1 Eine erste Kompositkomponente
  149. 6.1.2 Der Bereich cc:interface
  150. Attribute
  151. Facets
  152. Verhaltensdefinitionen
  153. 6.1.3 Der Bereich cc:implementation
  154. 6.1.4 Ressourcen in Kompositkomponenten
  155. 6.1.5 Die Komponente mc:panelBox
  156. 6.1.6 Die Komponente mc:dataTable
  157. 6.1.7 Die Komponente mc:collapsiblePanel
  158. 6.1.8 Die Komponente mc:inputSpinner
  159. 6.1.9 Fallstricke in der Praxis
  160. Kompositkomponenten im Komponentenbaum
  161. Verwendung mehrerer Action-Attribute
  162. AuflösungdesTypsvonAttributen
  163. 6.2 Klassische Komponenten
  164. 6.2.1 Vorarbeiten: Komponentenfamilie, Komponententyp und Renderertyp definieren
  165. Die Wahl der Basisklasse
  166. Komponententyp, Komponentenfamilie und Renderertyp
  167. 6.2.2 Komponentenklasse schreiben
  168. Komponentenattribute
  169. State-Saving
  170. Komposition klassischer Komponenten
  171. 6.2.3 Rendererklasse schreiben
  172. Rendern (Encoding)
  173. Decodierung (Decoding)
  174. Rendern von Ressourcen
  175. 6.2.4 Registrieren der Komponenten- und der Rendererklasse
  176. 6.2.5 Tag-Definition schreiben
  177. 6.2.6 Tag-Behandlungsklasse schreiben
  178. 6.2.7 Tag-Bibliothek einbinden
  179. 6.3 Kompositkomponenten und klassische Komponenten kombinieren
  180. 6.4 Alternativen zur eigenen Komponente
  181. 6.4.1 Austausch der Rendererklasse
  182. 6.4.2 Austausch der Komponentenklasse
  183. 6.4.3 Benutzerdefinierte Komponente aus den Backing-Beans – Component-Binding
  184. 6.5 MyGourmet 13: Komponenten und Services
  185. 6.6 Die eigene Komponentenbibliothek
  186. 6.7 MyGourmet 13 mit Komponentenbibliothek
  187. 7 Ajax und JSF
  188. 7.1 Einführung in Ajax – »Asynchronous JavaScript And XML«
  189. 7.2 Ajax ab JSF 2.0
  190. 7.2.1 Ein erstes Beispiel mit f:ajax
  191. 7.2.2 f:ajax im Einsatz
  192. 7.2.3 Ereignisse und Listener in Ajax-Anfragen
  193. 7.2.4 JavaScript-API
  194. Senden von Ajax-Anfragen
  195. Status und Fehler von Ajax-Anfragen behandeln
  196. 7.2.5 Partieller JSF-Lebenszyklus
  197. 7.2.6 Ajax-Queue kontrollieren
  198. 7.2.7 Eingabefelder zurücksetzen
  199. 7.3 Ajax in Kompositkomponenten
  200. 7.4 Eigene Ajax-Komponenten
  201. 7.4.1 Die Kompositkomponente mc:ajaxStatus
  202. 7.4.2 Die Kompositkomponente mc:ajaxPoll
  203. 7.5 MyGourmet 14:Ajax
  204. 7.6 Werkzeuge für den Ajax-Entwickler
  205. 7.6.1 Firebug
  206. Analyse des DOM-Baums
  207. JavaScript-Debugging
  208. 7.6.2 HTTP-Debugger
  209. 7.6.3 Web Developer Toolbar
  210. 8 JSF und HTML5
  211. 8.1 Verarbeitungsmodi für Facelets-Dateien
  212. 8.2 HTML5 Pass-Through-Attribute
  213. 8.3 HTML5 Pass-Through-Elemente
  214. 8.4 MyGourmet 15:HTML5
  215. 9 JSF und CDI
  216. 9.1 Beans und Dependency-Injection mit CDI
  217. 9.1.1 Managed-Beans mit CDI
  218. 9.1.2 Producer-Methoden
  219. 9.2 Konfiguration von CDI
  220. 9.3 MyGourmet 16:IntegrationvonCDI
  221. 9.4 Konversationen mit JSF
  222. 9.5 Apache MyFaces CODI
  223. 9.5.1 Konversationen mit CODI
  224. Conversation-Scope
  225. View-Access-Scope
  226. Window-Scope
  227. Window-Context
  228. 9.5.2 View-Config und Page-Beans
  229. View-Config
  230. Page-Beans
  231. 9.5.3 MyGourmet 17: Apache MyFaces CODI
  232. 10 PrimeFaces – JSF und mehr
  233. 10.1 PrimeFaces – ein Überblick
  234. 10.2 Komponenten
  235. 10.2.1 Erweiterte Standardkomponenten
  236. 10.2.2 Auswahl einiger PrimeFaces-Komponenten
  237. AccordionPanel – p:accordionPanel
  238. Calendar – p:calendar
  239. DataTable – p:dataTable
  240. Menu – p:menu
  241. PanelGrid – p:panelGrid
  242. Rating – p:rating
  243. Slider – p:slider
  244. Spinner – p:spinner
  245. 10.3 Themes
  246. Benutzerdefinierte Themes erstellen
  247. 10.4 PrimeFaces und Ajax
  248. 10.4.1 Erweiterungen im Vergleich zu Standard-JSF
  249. 10.4.2 Ajax-Komponenten
  250. AjaxStatus – p:ajaxStatus
  251. Poll – p:poll
  252. 10.4.3 Komponenten mit Ajax-Unterstützung
  253. 10.5 MyGourmet 18: PrimeFaces
  254. 10.5.1 Integration von PrimeFaces
  255. 10.5.2 Umstellung auf PrimeFaces-Komponenten
  256. 10.5.3 Benutzerdefiniertes Theme
  257. 11 Faces-Flows
  258. 11.1 Ein erstes Beispiel
  259. 11.2 Definition von Flows
  260. 11.2.1 Typen von Flow-Knoten
  261. 11.2.2 Definition mit XML
  262. 11.2.3 Definition mit Java
  263. 11.3 Flow-Scope
  264. 11.3.1 Managed-Beans im Flow-Scope
  265. 11.3.2 Direkter Zugriff auf den Flow-Scope
  266. 11.4 Faces-Flows in Jar-Dateien
  267. 11.5 Beispiel Faces-Flows
  268. 12 MyGourmet Fullstack – JSF, CDI und JPA mit CODI kombiniert
  269. 12.1 Architektur von MyGourmet Fullstack
  270. 12.1.1 Entitäten
  271. 12.1.2 Datenzugriffsschicht
  272. 12.1.3 Serviceschicht
  273. 12.1.4 Präsentationsschicht
  274. A Eine kurze Einführung in Maven
  275. A.1 Installation von Maven
  276. A.2 Maven und MyGourmet
  277. A.3 Erstellen eines JSF-Projekts
  278. B Eclipse
  279. B.1 Installation von Eclipse mit Maven-Unterstützung
  280. B.2 Eclipse und MyGourmet
  281. B.3 Apache Tomcat 7 in Eclipse einrichten
  282. Stichwortverzeichnis