2017-04-24 3 views
1

Quelle est la meilleure pratique pour naviguer plusieurs fois (rediriger)? J'ai créé un sessionScoped Bean avec une pile mais cela gâche la navigation en cas d'ouverture de différents onglets poussant de mauvaises urls.La navigation dans l'histoire

Navigation Exemple:

Page A -> Page B -> Page C

Page C -> Page B -> A

Comment obtenir la dernière url et obtenir de retour et revenir encore? Ok, j'ai implémenté viewParams qui ne sait toujours pas revenir en arrière.

+0

Utilisez 'ViewScoped' pour prendre en charge plusieurs onglets. Voir [Comment choisir la bonne portée de bean?] (Http://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope) –

+0

@JasperdeVries Comment ViewScoped m'aidera-t-il à revenir en arrière? plusieurs fois? – MrCodex

+0

Cette partie de votre question est trop large/peu claire. –

Répondre

1

Le meilleur modèle de gestion de la navigation consiste à se fier au navigateur du client pour se souvenir des URL qu'il a visitées; c'est le cas pour tous les frameworks et pas seulement JSF. JSF rend facile (et tentant) de maintenir beaucoup d'état inutile sur la session. Assurez-vous que votre session est la plus légère possible et assurez-vous que tout ce qui est nécessaire pour initialiser correctement les beans web est encodé dans l'URL dans les paramètres de la vue. De cette façon, vous n'avez pas à réinventer la roue et tout fonctionnera sans surprises, quel que soit le nombre d'onglets ouverts par le client.

+0

Est-ce une mauvaise pratique d'utiliser SessionStorage pour maintenir un tableau avec des URL et pousser et sauter selon la navigation? – MrCodex

+0

Je pense que c'est inutile, et certainement ouvert aux erreurs (que vous découvrez). Ce serait juste dupliquer ce que le navigateur client fait déjà. – StuPointerException

+0

Je passe les paramètres à travers l'ajout d'url Params. Quelle est la meilleure pratique? Vous avez dit que je ne devrais pas utiliser sessionStorage ... Pouvez-vous me donner un indice plus clair s'il vous plait? – MrCodex