Java EE 7 Grundkurs

Explizite Navigation

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Definition von symbolischen Namen in der Konfigurationsdatei, welche anschließend von Komponenten angesprochen werden, stellt eine Grundvoraussetzung für die explizite Navigation im JSF-Framework dar.

Transkript

JSF kennt verschiedene Varianten, wie eine Navigation innerhalb einer Applikation gewährleistet werden kann. Zum einen gibt es immer die Möglichkeit, über HTML-Links innerhalb der Navigation zu navigieren. Zum anderen gibt es die sogenannte implizite Navigation. Wir befassen uns in diesem Video mit der dritten Möglichkeit, nämlich der expliziten Navigation. Wir werden besprechen, was die explizite Navigation ist und wie sie deklariert werden kann. Die explizite Navigation basiert darauf, dass es explizite Navigationsregeln gibt. Diese sind in der Datei faces-config.xml deklariert und zwar gibt es dort ein navigation-rule Element. Innerhalb dieses navigation-rule Elementes ist deklariert, für welchen View diese Navigationsregeln gelten. Das ist die Angabe from-view-id und es sind sogenannte Navigation Cases deklariert. Das sind Navigationsfälle, die auftreten können. Jeder dieser Navigationsfälle beinhaltet einen symbolischen Namen from-outcome und dieser symbolische Name ist mit einer View assoziiert. Wenn jetzt von einer Komponente der symbolische Name zurückgegeben wird, dann wird JSF die entsprechende View aufrufen. Es können mehrere Outcomes definiert werden und dementsprechend können verschiedene Views über dieselbe Navigationsregel angesprochen werden. Sehen wir uns einfach einmal an, wie dies geschehen kann. Wir befinden uns hier in einer Bean, die die Aufgabe hat, für bestimmte Fälle, dass Benutzer in einer Applikation registriert sind, oder dass keine Benutzer in einer Applikation registriert sind, unterschiedliche Rückgaben zurückzugeben. Das sind bisher die Namen von Views. Wir werden dies jetzt so abändern, dass wir symbolische Namen verwenden. Sollten Benutzer registriert sein, gibt es nunmehr den symbolischen Namen success. Sollten keine Benutzer registriert sein, dann gibt es den symbolischen Namen failure. Diese symbolischen Namen müssen nun natürlich aufgelöst werden. Bei der implizierten Navigation würden jetzt nach Views mit dem Namen success.xhtml oder failure.xhtml gesucht werden. Nur diese Views gibt es nicht. Die Verknüpfung dieser symbolischen Namen mit tatsächlichen anzuzeigenden Views stellen wir in der faces-config.xml Datei dar. Hier gibt es einen Bereich mit dem Namen Navigation Rules. Wenn wir hier einen Rechtsklick darauf machen, können wir eine neue Regel anlegen. Als View ID, für die diese Regeln gelten, definieren wir zunächst einmal, dass die folgende Regel für alle Views gilt. Das machen wir über den Platzhalter Sternchen. Den Display Namen können wir ignorieren. Ein Klick auf Finish legt die Navigationsregel an. Wir können nun verschiedene Navigationsfälle unterscheiden. Das machen wir, indem wir einen Klick auf den Button Add machen. Hier können wir ein Outcome definieren. Wir haben ja zwei Outcomes definiert gehabt, einmal success und einmal failure. Lassen Sie uns zunächst das Verhalten für das Outcome sucess definieren. Sollten also User definiert sein in der Applikation, dann verweisen wir auf die View ZeigeUser.xhtml. Ein Klick auf Finish fügt diese Navigationsregel hinzu. Wir fügen noch eine weitere Navigationsregel hinzu, nämlich bei der Rückgabe failure wird auf die View KeineUser.xhtml verwiesen. Das gilt nunmehr für alle Views innerhalb dieser Applikation. Lassen Sie uns noch eine Navigationsregel anlegen. Diese gilt spezifisch nur für eine einzelne View, nämlich für die View KeineUser.xhtml. Wird in dieser View das Outcome success zurückgegeben, dann soll nichts weiter passieren. Das heißt, das Standardverhalten gilt und die View wird einfach direkt noch einmal aufgerufen. Sollte allerdings das Outcome failure zurückgegeben werden, dann verweisen wir dieses Mal auf eine andere View, nämlich nicht auf KeineUser.xhtml, sondern auf die View RegisterUser.xhtml, in der man Benutzer anlegen kann. Ein Klick auf Finish legt diese Navigationsregel an. Wir speichern diese Navigationsregel nun und wenn wir nun unsere Applikation auf dem Server deployen und sie danach aufrufen, können wir diese Navigationsregeln in Aktion begutachten. Angebunden sind diese Navigationsregeln übrigens im Template template.xhtml. Hier gibt es einen commandLink und dieser commandLink wertet die entsprechenden Informationen aus. Dieses Template wird für alle Seiten dieser Applikation verwendet. Wir befinden uns hier auf der Seite RegisterUser.xhtml. Klicke ich nun auf den Button Benutzer anzeigen, dann gelange ich auf die Seite KeineBenutzer.xhtml. Diese Seite ist nun aktiv auch wenn im Kopf nichts anderes steht als vorher. Wenn wir jetzt auf den Link Benutzer anzeigen klicken, wird, weil die Seite ja KeineUser.xhtml ist, auf die erste Seite wieder zurück verwiesen, denn unsere Navigationsregel für KeineUser.xhtml und die Rückgabe failure besagte, gehe auf die Seite RegisterUser.xhtml zurück. Sie sehen, eine explizite Navigation ist sehr einfach zu definieren. Explizite Navigationsregeln sind darüber hinaus noch in der Lage, mit Bedingungen zu arbeiten. Als Bedingungen können Expression Language Ausdrücke verwendet werden. Und das schafft letztlich noch ein kleines Plus mehr an Flexibilität. Als Beispiel sehen wir hier eine Navigationsregel, die nur dann gilt, wenn der User das Tag isPremium mit dem Wert true hat. Sie haben in diesem Video gelernt, was explizite Navigationsregeln sind und wie Sie sie in der faces-config.xml Datei deklarieren können. Sie sollten diese Funktionalität in Ihren Applikationen an Stellen einsetzen, wo Sie für dieselbe Rückgabe, für denselben symbolischen Wert, unterschiedliche Navigationsregeln verwenden wollen. Oder Sie setzen sie immer dort ein, wo Sie sich von der festen Verdrahtung mit anderen Views lösen wollen und das später einfacher managen wollen. Genau dafür sind nämlich diese expliziten Navigationsregeln gedacht.

Java EE 7 Grundkurs

Lernen Sie die Grundlagen der Programmierung mit Java EE 7 verstehen und anwenden.

6 Std. 4 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!