Peut-on executer du code java avant d'appeler la jsp ? [JSF] - Java - Programmation
Marsh Posté le 09-09-2008 à 11:50:20
Si tu mets l'appel au sgbd dans le constructeur de ta classe ca initialisera ta liste au premier appel de ta page.
Marsh Posté le 09-09-2008 à 14:13:05
j'ai pas dit que c'était propre comme solution
edit : on peut aussi mettre en place un filtre qui lancera une fonction init() pour charger la liste ou faire une classe contenant la classe au-dessus et qui gèrera sa vie...
mais bon JSF y a pas mal de truc naze des fois avec leur cycle de vie relou.
Marsh Posté le 18-09-2008 à 14:16:57
une solution avec le phase lisneter
etend la classe phaseListener de JSF, un exemple ici
ensuite dans la methode afterPhase
Code :
|
et j'ai plus qu'à appeler ma page à l'adresse : http://localhost:8080/learn/jsp/mapage1.faces
pas super propre mais ça marche
Merci à vous, à Sniper37 et à romaintaz
A+
lipao
Marsh Posté le 08-09-2008 à 16:33:26
Bonjour,
je débute complètement avec jsf mais je me pose une question très simple : Peut-on accéder à un ManagedBean avant d'exécuter la jsp ?
Je m'explique, j'ai fait une page mapage1.jsp qui contient quelques trucs dont le lien suivant :
lorsque je click sur ce lien j'arrive dans la méthode lien2() du managedBean monManagedBean.
Cette méthode effectue un traitement genre un appel à la BDD pour récupérer une liste et mettre cette liste en request. Puis elle retourne la chaine de caractère "mapage2".
d'après ce qui est indiqué dans mon faces-config, la page mapage2.jsp va être affiché à l'écran :
dans mapage2.jsp je vais pouvoir récupérer la liste présente en request et l'afficher.
Voilà quand j'appelle l'url http://localhost:8080/learn/jsp/mapage1.faces je tombe sur ma page avec mon lien et lorsque je click dessus j'arrive bien sur mapage2 avec ma liste récupérée en BDD.
Jusque là ça va. Mon problème est que je voudrais accéder directement à mapage2 (et donc passer par le managedBean qui appel la BDD) sans passer par mapage1. Est-ce possible ? et comment dois-je faire ?
J'espère avoir été clair dans ma demande (je peux préciser si besoin).
Merci à ceux qui voudront bien m'éclairer.
lipao