Einführung in den JSF-Lebenszyklus

1. Serverseitig:

Der Code, den Sie in eine JavaServer Faces-Anwendung (JSF) schreiben, wird auf dem Server ausgeführt. Komponenten können jedoch auch JavaScript-Code enthalten, der auf dem Client ausgeführt wird. Sie können dies mit clientseitigen Frameworks wie Angular vergleichen, bei denen Sie Code in JavaScript oder Typescript schreiben, der clientseitig im Webbrowser ausgeführt wird.

Die Tatsache, dass es sich um ein serverseitiges Framework handelt, bedeutet nicht, dass Sie den clientseitigen Code nicht in der JSF-Anwendung verwenden können. Tatsächlich können JSF-Komponenten JavaScript- und JSF-Unterstützung für AJAX, für die Kommunikation sowie den clientseitigen und serverseitigen Code des Teams enthalten.

2. Komponentenbasiert:

JavaServer Faces-Webanwendungen werden aus wiederverwendbaren, eigenständigen Komponenten als Bausteine ​​erstellt, sodass Webanwendungen schneller und einfacher erstellt werden können.

Der interessanteste Aspekt von JavaServer Faces, der sich von aktionsbasierten Webanwendungsframeworks wie Spring Web MVC (Model-View-Controller), Struts oder einfachen Servlets auf JavaServer-Seiten unterscheidet, ist, dass es komponentenbasiert ist. Dies bedeutet, dass die Bausteine ​​Ihrer Anwendung in JSF wiederverwendbare und in sich geschlossene Komponenten sind.

Eine Komponente kann ein beliebiger Teil einer Webanwendung sein. Es kann so einfach sein wie ein Standard-HTML-Formular-Steuerelement wie ein Texteingabefeld oder eine Schaltfläche oder so komplex wie eine Tabelle mit Sortier- und Paginierungsunterstützung.

Beispielsweise:

Ein Kalender, ein Diagramm oder ein anderer Teil einer Webanwendung, von dem Sie sich das Framework vorstellen können, verwaltet die Komponenten auf einer Seite und erledigt viele Aufgaben, z. B. Benutzereingaben aus Formularfeldern übernehmen, Daten validieren, konvertieren und speichern in Modellobjekte und Aufrufen von Aktionen.

JSF wird mit einer Reihe von Standardkomponenten geliefert und es gibt auch Bibliotheken mit vielen gebrauchsfertigen Komponenten.

3. Web-UI-Framework

JavaServer Faces konzentriert sich auf die Benutzeroberfläche von Webanwendungen - Sie definieren Seiten in der Definitionssprache der Facelets-Ansicht.

Die in JSF verwendete Standardsprache für die Definition von Ansichten heißt Facelets.

Verschiedene regelmäßige Phasen des JSF-Lebenszyklus

Es gibt sechs verschiedene reguläre Phasen innerhalb des JSF-Lebenszyklus. Das obige Diagramm zeigt die typische Reihenfolge, in der die sechs Phasen ausgeführt werden.

1. Stellen Sie die Ansichtsphase wieder her

Diese Phase beginnt jedes Mal, wenn ein Verbraucher eine JSF-Seite anfordert, indem er einfach auf einen Link, eine Schaltfläche usw. klickt. Bei dieser Seitenansichtsgenerierung wird die Bindung von Komponenten an die Ereignishandler und Validatoren ausgeführt und die Ansicht wird im FacesContext-Objekt beibehalten.

2. Anforderungswert anwenden

Das Ziel dieser Phase besteht darin, dass jede Komponente den aktuellen Status abruft

3. Prozessvalidierungsphase

In dieser Phase werden lokale Werte, die zum Abrufen der Komponente im Baum gespeichert wurden, mit den Validierungsregeln verglichen, die zum Abrufen der Komponenten berechtigt sind.

4. Aktualisieren Sie die Modellwertphase

Nach der Überprüfung, ob die Daten in der letzten Phase gültig sind, können lokale Werte von Elementen gestartet werden, die sich auf serverbasierte Objekteigenschaften beziehen, z. B. Backing Beans.

5. Rufen Sie die Anwendungsphase auf

Vor dieser Phase wurden die Komponentenwerte transformiert, validiert und den Bean-Objekten hinzugefügt, sodass Sie diese zur Ausführung der Geschäftslogik der Anwendung verwenden können.

6. Render Response Phase

In dieser Phase wird bei Bedarf eine neue Ansicht mit Werten von serverseitigen Beans abgerufen. Anschließend wird die Ansicht mit den Werten ausgegeben, die sich in der Baumstruktur befinden, und anschließend für Beans, die nicht in der Anforderung enthalten sind, dh für den Sitzungs- oder Anwendungsbereich dann speichere denen den aktuellen zustand.

Grundlegendes zu Gesichtern Fließt mit der Demoanwendung im realen Beispiel

Unten sehen Sie die Demo-Anwendung von Face Flows mit einem Beispiel:

Der Checkout-Prozess

  • Geben Sie die Versanddetails ein
  • Name und Adresse
  • Geben Sie die Zahlungsdetails ein
  • Name, Kreditkartentyp und Nummer
  • Bestellung überprüfen
  • Bestellung bestätigen oder stornieren
  • Zahlung erfolgreich oder fehlgeschlagen

Sehen Sie sich den Checkout-Ablauf mit Ablaufknoten im folgenden Diagramm an.

Ein Flow besteht aus mehreren Knoten. Jeder Knoten ist in dem Ablauf angeordnet, der eine Funktion ausführt, und gibt an, welcher Knoten als nächstes aufgerufen werden soll. In der Definition eines Flows definieren Sie die Knoten und die Regeln für die Navigation zwischen ihnen. In diesem Diagramm sehen Sie die Knoten des Checkout-Ablaufs.

Es beginnt mit dem Versand, dann der Zahlung und der Überprüfung, dann dem Ausführungsknoten, auf dem die Zahlung erfolgt und die Bestellung ausgeführt wird, und schließlich wird der Erfolg oder Misserfolg des Ergebnisses überprüft, und dann ist der Vorgang abgeschlossen.

Arten von Flussknoten im JSF-Lebenszyklus

Es gibt fünf verschiedene Arten von Knoten im JSF-Lebenszyklus.

Knoten anzeigen

  • Ansicht anzeigen (Seite)

Methodenaufrufknoten

  • Rufen Sie eine Methode auf

Knoten wechseln

  • Wählen Sie einen Fall aus einer Reihe von Fällen aus

Rücksprungknoten

  • Beenden Sie den Fluss

Flow-Aufrufknoten

  • Rufen Sie einen anderen Flow auf

Abläufe sind Methoden ähnlich

Nachfolgend sind ähnliche Flussmethoden im JSF-Lebenszyklus aufgeführt:

Einstiegspunkt, Parameter, Ausstiegspunkte

  • Kann einen oder mehrere Werte zurückgeben

Durchflussumfang

  • Flow-Scoped Beans sind wie lokale Variablen

Verschachtelte Flow-Aufrufe

  • Stack aufrufen

Ein Aufrufstapel wird verwendet, um Aufrufe und Bereiche von Flows genau so zu verfolgen, wie dies bei der Methode der Fall ist. Wenn ein Flow aufgerufen wird, wird ein neuer Eintrag in den Stapel verschoben, und wenn der Flow zurückkehrt, wird sein Eintrag aus dem Stapel entfernt. Es gibt zwei Möglichkeiten, die Konfiguration des Flusses festzulegen.

XML-Konfigurationsdatei

  • In faces-config.xml oder in einer separaten Datei

In Java mit der Flow Builder-API

  • CDI-Producer-Methode mit @FlowDefinition-Annotation

Fazit: JSF-Lebenszyklus

Java Server Faces (JSF) ist das Standardkonzept zum Einrichten von Webanwendungen in Java. Trotzdem müssen während der Entwicklung und Bereitstellung von JSF-Anwendungen zahlreiche Leistungsmerkmale und Konfigurationen angewendet werden, um die Anwendungen sicherer, zuverlässiger und effektiver zu machen.

Empfohlene Artikel

Dies war ein Leitfaden zum JSF-Lebenszyklus. Hier haben wir die sechs verschiedenen regulären Phasen des JSF-Lebenszyklus und fünf verschiedene Arten von Knoten im JSF-Lebenszyklus besprochen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. JSP vs JSF - Top Unterschiede
  2. Java EE gegen Frühling
  3. Fragen in Vorstellungsgesprächen bei Java Servlet
  4. Karriere in Java