JSF: page suivante vs redirection de page

JSF: Page Forward vs Page Redirect

Par défaut, JSF exécute une page de serveur vers l'avant lors de la navigation vers une autre page. Voir l'exemple suivant pour différencier la page suivante et la redirection de page.

Une page «start.xhtml», avec un bouton, permet d'accéder à la page «page1.xhtml».

1. Page suivante

Voici comment fonctionne la page suivante:

  1. Le navigateur envoie une requête «GET» à l'URL:http://localhost:8080/JavaServerFaces/faces/start.xhtml.

  2. JSF a reçu la demande et renvoie le «start.xhtml».

  3. Le navigateur affiche le contenu de «start.xhtml».

  4. L'utilisateur clique sur le bouton.

  5. JSF a reçu l'action et exécute uninternal page forward vers «page1.xhtml» côté serveur.

  6. JSF renvoie le «page1.xhtml».

  7. Le navigateur affiche le contenu des «page1.xhtml».

Dans la page suivante,browser’s URL is not update.

jsf2-page-forward-example

2. Redirection de page

Voici comment fonctionne la redirection de page:

  1. Le navigateur envoie une requête «GET» à l'URL:http://localhost:8080/JavaServerFaces/faces/start.xhtml.

  2. JSF a reçu la demande et renvoie le «start.xhtml».

  3. Le navigateur affiche le contenu de «start.xhtml».

  4. L'utilisateur clique sur le bouton.

  5. JSF a reçu l'action et renvoie une réponse «redirect» à «page1.xhtml» au navigateur.

  6. Le navigateur a reçu la réponse et a envoyé une autre requête «GET» à l'URL:http://localhost:8080/JavaServerFaces/faces/page1.xhtml.

  7. JSF a reçu la demande et renvoie le «page1.xhtml».

  8. Le navigateur affiche le contenu des «page1.xhtml» et desbrowser’s URL is updated.

jsf2-page-redirection-example

Pour activer la redirection de page dans JSF 2.0, vous pouvez ajouter «faces-redirect=true» à la fin de la chaîne de résultat.

Page en avant.


    

Redirection de page.


    

Dans la règle de navigation, vous pouvez activer la redirection de page en ajoutant un élément<redirect /> dans les<navigation-case />.


    start.xhtml
    
        page1
        page1.xhtml
        
    

Conclusion

Le mécanisme de transfert de page par défaut est plus rapide par rapport à la redirection de page, car la redirection de page a ajouté une requête HTTP supplémentaire au serveur. Ainsi, n'activez la redirection de page que lorsque cela est nécessaire, par exemple, utilise le Design Pattern dePost/Redirect/Get pour résoudre lesduplicated form submission problem classiques.

Télécharger le code source

Téléchargez-le -JSF-2-Page-Redirection-Example.zip (9 Ko)