Salut tout le monde,
J'ai un problème à résoudre avec plusieurs solutions possibles... mais aucune ne me convient particulièrement : peut-être que l'un d'entre vous aura une meilleure solution.
L'application : j'ai une page permettant de rechercher des personnes en utilisant plusieurs critères de recherches : nom, prénom, age etc... (ces critères peuvent bien sûr être combinés). On saisi donc les critères, on clique sur "search" et hop, la liste des résultats est affichée sur la même page que celle où on a saisi les critères de recherche. A partir de là, on peut cliquer sur un des résultats affichés pour qu'une nouvelle page apparaisse avec les détails complets de la personne sur laquelle on a cliqué (super original hein ?)
Le problème : sur la page de "détail", on veut avoir un bouton "retour" permettant de revenir à la page précédente, et on veut bien sûr retrouver les critères de recherches précédents ainsi que les résultats précédents.
Solution #1 : le bouton "retour" simule en fait un clic sur le bouton "back" du browser, ce qui permet effectivement de revenir en arrière. Solution rapide, mais qui marche pas des masses si l'appli est intégrée en tant que portlet.
Solution #2 : on met tout en session (critères de recherche + résultat), et quand on clique sur "retour", on récupère les infos de session ce qui permet de ré-afficher la page comme il faut. Autre solution rapide... mais qui pollue un peu beaucoup la session, surtout si les résultats de la recherche sont volumineux !
Solution #3 : on met uniquement les critères de recherche en session, et quand on clique sur "retour", on récupère ces critères et on re-exécute la recherche... pas génial niveau perfs.
Solution #4 : on met des champs cachés au niveau de la page de "détail", ce qui permet de stocker les critères de recherche comme paramètres de requête (et non pas comme attributs de session), à la suite de quoi on les récupère et on refait une recherche : super bof.
Voilà voilà... y-a-t-il une autre solution "plus propre" qui m'aurait échappée ?
Merci pour votre aide.
Partager