JSF: Seitenweiterleitung vs.

JSF: Page Forward vs Page Redirect

Standardmäßig leitet JSF eine Serverseite weiter, während Sie zu einer anderen Seite navigieren. Im folgenden Beispiel wird zwischen der Vorwärts- und der Seitenumleitung unterschieden.

Eine Seite "start.xhtml" mit einer Schaltfläche navigieren Sie zur Seite "page1.xhtml".

1. Seite vorwärts

So funktioniert die Seite vorwärts:

  1. Der Browser sendet eine "GET" -Anforderung an die URL:http://localhost:8080/JavaServerFaces/faces/start.xhtml.

  2. JSF hat die Anfrage erhalten und gibt die "start.xhtml" zurück.

  3. Der Browser zeigt den Inhalt von „start.xhtml“ an.

  4. Benutzer klicken Sie auf die Schaltfläche.

  5. JSF hat die Aktion empfangen und führt auf der Serverseiteinternal page forward bis „page1.xhtml“ aus.

  6. JSF gibt die "page1.xhtml" zurück.

  7. Der Browser zeigt den Inhalt der „page1.xhtml“ an.

Auf der Seite vorwärtsbrowser’s URL is not update.

jsf2-page-forward-example

2. Seitenumleitung

So funktioniert die Seitenumleitung:

  1. Der Browser sendet eine "GET" -Anforderung an die URL:http://localhost:8080/JavaServerFaces/faces/start.xhtml.

  2. JSF hat die Anfrage erhalten und gibt die "start.xhtml" zurück.

  3. Der Browser zeigt den Inhalt von „start.xhtml“ an.

  4. Benutzer klicken Sie auf die Schaltfläche.

  5. JSF hat die Aktion empfangen und eine Antwort von "redirect" an "page1.xhtml" an den Browser zurückgesendet.

  6. Der Browser hat die Antwort erhalten und sendet eine weitere Anfrage "GET" an die URL:http://localhost:8080/JavaServerFaces/faces/page1.xhtml.

  7. JSF hat die Anfrage erhalten und gibt die "page1.xhtml" zurück.

  8. Der Browser zeigt den Inhalt der „page1.xhtml“ und derbrowser’s URL is updated an.

jsf2-page-redirection-example

Um die Seitenumleitung in JSF 2.0 zu aktivieren, können Sie am Ende der Ergebniszeichenfolge "faces-redirect=true" anhängen.

Seite vorwärts.


    

Seitenumleitung.


    

In der Navigationsregel können Sie die Seitenumleitung aktivieren, indem Sie ein<redirect />-Element innerhalb von<navigation-case /> hinzufügen.


    start.xhtml
    
        page1
        page1.xhtml
        
    

Fazit

Der Standard-Seitenweiterleitungsmechanismus ist im Vergleich zur Seitenumleitung schneller, da die Seitenumleitung dem Server eine zusätzliche HTTP-Anforderung hinzufügt. Aktivieren Sie die Seitenumleitung also nur, wenn dies erforderlich ist. Verwenden Sie beispielsweise das Entwurfsmuster vonPost/Redirect/Get, um die klassischenduplicated form submission problemzu lösen.

Quellcode herunterladen

Laden Sie es herunter -JSF-2-Page-Redirection-Example.zip (9KB)