JSF - Java Server Faces mit CDI
4.5 (12 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
83 students enrolled
Wishlisted Wishlist

Please confirm that you want to add JSF - Java Server Faces mit CDI to your Wishlist.

Add to Wishlist

JSF - Java Server Faces mit CDI

Entwickle professionelle formularbasierte Webseiten mit dem Model-View-Controller-Pattern der JSFs
4.5 (12 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
83 students enrolled
Created by Christoph Tornau
Last updated 8/2017
German
Current price: $10 Original price: $50 Discount: 80% off
30-Day Money-Back Guarantee
Includes:
  • 7.5 hours on-demand video
  • 20 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • ...Formular-basierte Webapplikationen in hoher Effizienz entwickeln.
  • ...mit Java Server Pages (JSF) umgehen.
  • ...auch hochgradig komplexe Webapplikationen systematisch entwickeln.
View Curriculum
Requirements
  • Grundlagen in der Java-Programmierung
  • Basiskenntnisse in der Webentwicklung
Description

Innerhalb des Webs begegnet man einer Vielzahl an Formularen, in welchen Benutzer ihre Daten hinterlassen oder diese auch zum Editieren anzeigen lassen, um Dienste in Anspruch zu nehmen. Banking wird mit einem Überweisungsformular bewerkstelligt. Im Onlineshop müssen zum Abschluss des Bestellvorganges Adresse und Bankverbindung in einem Formular hinterlassen werden. Selbst jede Email oder jeder Blogeintrag wird über ein Formular verfasst. 

Formulare in HTML haben jedoch ihre Tücken. Zum einen entstehen durch eine unsaubere Programmierung Sicherheitslücken, zum anderen ist es ein leidiger routinemäßiger Prozess die Daten im Formular mit Daten im Backend synchron zu halten, um die Daten dann auch verarbeiten zu können. Zusätzlich müssen Eingabedaten validiert und eventuell auch in andere Formate konvertiert werden. Moderne Webseiten bieten Möglichkeiten schon während der Eingabe mit Hilfe von AJAX-Requests an den Server zu reagieren und die Webseite und damit die Formulare entsprechend anzupassen. 

Um all diese Prozesse zu vereinfachen, wurden die Java Server Faces (JSF) entwickelt. Sie dienen dazu mit Hilfe des Model-View-Controller-Patterns den View vom Model zu trennen und einen standardisierten sicheren Prozess für die Verarbeitung von Eingaben zu definieren. Dabei werden die Java Server Faces nicht zu unrecht als eine Erweiterung oder sogar Ersetzung der Java Server Pages (JSPs) bezeichnet.

Dieser Kurs führt in die professionelle Entwicklung in die Java Server Faces (JSF) ein. Dabei beginnt er bei den Grundlagen und endet damit, dass Java Server Faces auch mit der Context and Dependency Injection (CDI) genutzt werden. Der Kurs wird von einem Praxisprojekt begleitet. Am Ende des Kurses ist der Student / die Studentin in der Lage, umfangreiche Java-Server-Faces-(JSF)-Projekte selbst aufzusetzen sowie selbständig zu warten.

Who is the target audience?
  • Lernende, die sich mit der Entwicklung von umfangreichen Formular-basierten Webprojekten entweder beruflich oder privat beschäftigen möchten.
  • Entwickler, die die Schwierigkeiten der Entwicklung von Formular-basierten Applikationen mit Servlets und JSPs erkannt haben.
Curriculum For This Course
81 Lectures
07:18:01
+
Einführung in die Java Server Faces (JSF)
6 Lectures 37:57

Java Server Faces (JSFs) als eine Weiterentwicklung der Java Server Pages (JSPs), welche vor allen Dingen Vorteile bei der Verarbeitung von formularbasierten Webseiten beinhalten.

Preview 04:20

Über den Autor des Kurses sowie seinen Nutzen für den Kursteilnehmer.

Preview 05:22

Unterschiedliche Möglichkeiten, welche von den Java Server Faces angeboten werden, um die Entwicklung von webbasierten Enterprise-Applikationen zu unterstützen.

Preview 03:32

Die gezeigte Buchverwaltung werden wir innerhalb des Kurses zusammen aufbauen. Am Ende des Kurses bist Du in der Lage, diese Buchverwaltung entsprechend Deinen Zwecken anzupassen, sei es sie zur Büchereiverwaltung auszubauen oder auf Objekte gemäß Deinen Anforderungen umzubauen.

Preview 10:56

Das Model-View-Controller-Pattern (MVC) in seiner allgemeinen Form und wie es innerhalb der Java Server Faces zur Anwendung kommt.

Preview 05:56

Durchgang durch den Lifecycle eines Requestes, wie er serverseitig von den Java Server Faces (JSFs) verarbeitet wird, bis er wieder zum Client als Response zurückgeschickt wird.

Preview 07:51
+
Die erste Java Server Face (JSF)
5 Lectures 17:31

Bereitstellung einer web.xml, in welcher das Faces-Servlet konfiguriert wird, damit Java Server Faces (JSFs) innerhalb der Anwendung dadurch verfügbar werden.

Preview 02:26

Über die faces-config.xml erhält das Faces-Servlet seine Konfigurationen.

Preview 02:06

Eine erste simple Java-Server-Face (JSF), welche die Header des Requestes anzeigt.

Preview 03:51

Überblick darüber, welche HTML-Elemente innerhalb von Java Server Faces (JSFs) genutzt werden können. 

HTML-Formularelemente in Java Server Faces
06:27

Die zu einer Java Server Faces (JSF) gehörige Backing Bean, welche sich im Backend befindet und das Model hinter der Java Server Faces wiederspiegelt.

Backing Beans
02:41
+
Hands on: Ein erstes JSF-Projekt erstellen
9 Lectures 58:53

Der  Schlachtplan, wie wir Java Server Faces (JSFs) zum Laufen bekommen wollen, wird vorgestellt. Auch wird unser Beispielprojekt einer Buchverwaltung kurz eingeführt.

Überblick über das Vorgehen
02:53

An den einzelnen Hands-On-Lektionen befindet sich immer eine Buchverwaltung.zip-Datei. In dieser befindet sich der aktuelle Stand. Die Dateien lassen sich einfach in Eclipse importieren und dann dort anschauen. 

Wie kann man das Eclipse-Projekt importieren, um den aktuellen Stand zu sehen?
02:32

Das Build-Tool Maven ist in der Lage uns Abhängigkeiten, die wir in unserem Projekt benötigen, konkret gesagt die Bibliotheken, die die Java Server Faces beinhalten, automatisch hineinzuladen und den Build-Prozess standardisiert zu unterstützen

Maven-Einführung
04:15

Die lokale Arbeitsumgebung wird vorbereitet, dazu laden wir Java, Apache Tomcat und Eclipse herunter und installieren diese.

Installation der Arbeitsumgebung
10:53

Ein Maven-Projekt wird angelegt und in dieses Projekt mittels des automatischen Nachladens der Libraries die Java Server Faces (JSFs) konfiguriert.

Projekt mit Maven-Konfiguration in Eclipse anlegen
14:54

Sowohl die web.xml wie auch die faces-config.xml werden angelegt.

web.xml und faces-config.xml
03:08

Wir starten das Maven-Projekt erstmalig durch, um zu testen, ob auch alles richtig funktioniert.

Preview 04:23

Die Backing-Bean für das Buch wird hinzugefügt.

Preview 04:24

Ein Formular zur Entgegennahme der Buchdaten wird erstellt.

Preview 11:31

Fragen zu der Konfiguration und dem ersten Lifecycle der Java Server Faces (JSF)

Grundlagen der Java Server Faces (JSF)
5 questions
+
Aktionen, Listener und der Lifecycle
4 Lectures 17:37

Dem CommandButton wird ein ActionListener hinzugefügt. ActionListener werden aufgerufen, bevor die eigentliche Action aufgerufen wird.

Aktionen am CommandButton
05:31

Wenn sich Werte in den Formularfeldern geändert haben, so werden ValueChangeListener aufgerufen. Diese können entweder als Methode in dem Modell implementiert werden oder jedoch in einer eigenen Klasse.

Listener an Formularfeldern
03:52

Mittels AJAX lassen sich geänderte Formularfelder direkt an den Server übertragen und schon während der Benutzer das Formular ausfüllt, Zusatzinformationen innerhalb des Formulares anzeigen.

AJAX-Unterstützung
03:56

Wir haben den Lifecycle als Lebenszyklus des Requestes kennengelernt, der zum Server geschickt wird und als Response wieder zurück kommt. An die einzelnen Phasen dieses Lifecylces lassen sich Listener hängen, welche aktiviert werden, wenn der Request diese Phase betritt und wieder verlässt.

Lifecycle-Listener
04:18
+
Hands On: Aktionen starten
4 Lectures 34:15

Demonstration einer SelectManyListbox in unserem Formular und das Hinzufügen einer Action durch einen ActionListener, die vor der eigentlichen Action ausgeführt wird.

Eine SelectManyListbox wird hinzugefügt und ein ActionListener angelegt
09:17

Ein ValueChangedListener wird hinzugefügt, der eine Methode in unserem Book-Modell aufruft.

Ein ValueChangedListener über eine Methode in der Modell-Klasse wird definiert
05:05

Hinzufügen eines SelectOneListbox-Feldes und eines ValueChangedListener, der eine Methode in einer neuen Klasse aufruft.

Ein ValueChangedListener mit eigener Klasse wird auf SelectOneListbox angelegt
11:15

Nutzung von AJAX, um innerhalb des Formulares ein Darstellungsfeld für einen String zu ändern. 

Nutzung eines Ajax-Listeners
08:38

Fragen zu den Listenern und Aktionen der Java Server Faces (JSFs)

Listener und Aktionen
4 questions
+
Facelets, das Templatesystem von JSF
8 Lectures 31:44

Das Templating-System der Java Server Faces  (JSF) baut auf sogenannte Facelets auf. Mit diesem System lassen sich Komponenten von Java Server Faces (JSF) wiederverwenden. 

Facelets allgemein
03:55

Eine neuer Namespace für Facelets wird vorgestellt.

Namespace für Facelets
03:45

Einfaches includieren einer XHTML-Datei in eine andere XHTML-Datei.

Einfügen von XHTML-Dateien in XHTML-Dateien
03:49

Das Zusammensetzen einer Seite aus mehreren Bausteinen, wobei das Gerüst der Seite in einem Template definiert wird, alle Bausteine jedoch mit einem Composition-Tag innerhalb einer Datei definiert werden.

Composition-Tag
04:50

Das Composite-Tag entfernt die umgebenden Elemente und beschränkt sich darauf, die in ihm definierten Teile einer Seite in das Template einzufügen. Das Decorate-Tag geht den umgekehrten Weg und entfernt die umliegenden Elemente nicht. 

Decorate-Tag
03:08

Von jeder Seite können Parameter in includierte Seiten durchgereicht werden.

Durchreichen von Parametern
02:59

Inhalte von normalen XHTML-Kommentaren werden als auskommentierte Inhalte einer XHTML-Seite zum Client transportiert und können so geheimes Wissen über die Seite offenbaren. Das <t:remove>-Tag sorgt dafür, dass die Inhalte vollständig entfernt werden.

Auskommentieren von Teilen
03:20

Das <t:repeat>-Tag sowie das <h:dataTable>-Tag können dazu benutzt werden, um Tabelleninhalte in einer JSF-Seite anzuzeigen. 

Template-Fragmente wiederholen
05:58
+
Hands On: Templates mit Facelets
3 Lectures 34:52

Erstellen der Template-XHTML-Datei inklusive der Platzhalter und ihrer Standardtexte.

Template definieren
15:44

Verwendung der Template-Datei, um die index.xhtml aufzuräumen.

Nutzen des Templates in der bisherigen index.xhtml
07:17

Nutzen von <h:dataTable>, um eine Liste von Büchern in der Seite anzuzeigen. Dazu wird die alte index.xhtml in eine create.xhtml kopiert und die index.xhtml angepasst, so dass sie eine DataTable beinhaltet. Ein neues Modell, das BookShelf, wird eingefügt und dieses in der <h:dataTable> genutzt.

Einfügen einer Liste von Büchern mit <h:dataTable>
11:51
+
Internationalisierung und Lokalisierung
3 Lectures 13:02

Welchen Vorgang bezeichnet man als Internationaliserung (I18N) und welchen als Lokalisierung (L10N)?

Begriffsdefinition der Internationalisierung und Lokalisierung
03:14

Nutzen von Properties-Dateien, die die lokalisierten Sprachstrings beinhalten.

Properties-Dateien
04:24

Einbindung der properties-Datei(en) in das System und Referenzierung innerhalb der XHTML-Java Server Faces.

Referenzierung der properties-Datei(en) und Einbau in eine JSF-XHTML-Datei
05:24
+
Hands On: Internationalisierung
3 Lectures 13:19

Die message.properties werden angelegt. Zusätzlich wird die deutsche messages_de.properties in das Englische übersetzt.

messages.properties hinzufügen
03:49

Die Lokalisierung wird in der faces-config.xml konfiguriert.

Konfiguration in der faces-config.xml
02:30

Die zu übersetzenden Strings aus den XHTML-Dateien werden in die message_de.properties eingetragen und in die message_en.properties übersetzt. Das Projekt wird im Chrome-Browser getestet, indem die dortigen Spracheinstellungen genutzt werden.

Ersetzen der Sprachzeichenketten in den XHTML-Seiten
07:00

Fragen zur Nutzung des Template-Systems der Java Server Faces und zur Mehrsprachigkeit von Webseiten

Facelets und Internationalisierung
5 questions
+
Konvertierung und Validierung
10 Lectures 43:59

Einführung in die Konvertierung und Validierung insbesondere in die Phase des Lifecycles, in welchen diese stattfinden.

Phasen, in welchen die Konvertierung und Validierung stattfindet
02:49

Die drei Typen von Zahlenkonvertierungen.

Konvertierungen: Zahlenkonvertierung
06:20

Die Möglichkeit Java-Date-Objekte zu erzeugen und anzuzeigen.

Konvertierungen: Datumskonvertierung
02:22

Individuelle Konvertierungen durch die Nutzung einer eigenen Klasse.

Konvertierungen: Nutzung einer eigenen Klasse
05:08

Nutzung des required="true"-Attributes, um die Befüllung bestimmter Eingabefelder zu erzwingen. 

Validierungen: required-Attribut
02:38

Validatoren für Wertebereiche von Variablen und Stringlängen sowie Validatoren basierend auf Regular-Expressions.

Validierungen: Einfache Validatoren
04:19

Bereitstellen einer Klasse, die die Validierung durchführt.

Validierungen: Individuelle Validatorklasse
05:11

Bereitstellen einer Methode, die die Validierung durchführt.

Validierungen: Individuelle Validierungsmethode in der Backing Bean
02:31

Die Validierung in der Backing-Bean mit externen Annotationen, die von Seiten der Persistenz zur Verfügung gestellt werden.

Validierungen: Externe Validierung durch Annotationen in der Bean
06:25

Festlegen von Fehlernachrichten, die ausgegeben werden, wenn ein erforderliches Attribut fehlt oder durch die Validierung durchfällt.

requiredMessage und validatorMessage
06:16
4 More Sections
About the Instructor
Christoph Tornau
4.2 Average rating
85 Reviews
8,065 Students
4 Courses
Softwarearchitekt - Software Architect

Find the English translation below

Du findest in mir einen Softwareentwickler mit langjähriger Erfahrung in unterschiedlichen Programmiersprachen und mit unterschiedlichen Systemen. Schon während meines Studiums der Informatik beschäftigte ich mich Websystemen im Bereich des Dokumentenmanagements in den Programmiersprachen Java und Python. Nach Abschluss meines Studiums arbeitete ich bei Fraunhofer und entwickelte großskalierbare Portale im Backend, wo unterschiedlichste komplexe Services auf Java EE-Basis geschaffen wurden. Nach einem Arbeitsplatzwechsel war ich im Frontend-Bereich unter JavaScript eingestellt und entwickelte eine Konkurrenzapplikation zu Google Maps. In meiner Freizeit habe ich mich mit PHP-Projekten beschäftigt. 

I am a software developer with many years of experience in different programming languages working on different systems. During my studies of computer science, I already developed web applications on the area of document management systems using the programming languages Java and Python. After completing my studies, I worked at Fraunhofer and developed large scalable portals in the backend where various complex services were created on a Java EE basis. After a change in the workplace, I was hired in the frontend area working on JavaScript and developed a competition application to Google Maps. In my spare time, I've been working on PHP projects.