Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1382 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JSF] Peut-on executer du code java avant d'appeler la jsp ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JSF] Peut-on executer du code java avant d'appeler la jsp ?

n°1784007
lipao
Posté le 08-09-2008 à 16:33:26  profilanswer
 

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 :

Code :
  1. <h:commandLink action="#{monManagedBean.lien2}">
  2.    <h:outputText value="lien2">
  3. </h:commandLink>


 
lorsque je click sur ce lien j'arrive dans la méthode lien2() du managedBean monManagedBean.
 

Code :
  1. public String lien2()
  2. {
  3.   //traitement java pour récupérer une liste en BDD et la mettre en request
  4.   return "mapage2";
  5. }


 
 
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 :

Code :
  1. <navigation-rule>
  2.   <from-view-id>/jsp/mapage1.jsp</from-view-id>
  3.   <navigation-case>
  4.      <from-outcome>mapage2</from-outcome>
  5.      <to-view-id>/jsp/mapage2.jsp</to-view-id>
  6.   </navigation-case>
  7. </navigation-rule>


 
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

mood
Publicité
Posté le 08-09-2008 à 16:33:26  profilanswer
 

n°1784348
jan san ka​r
profil : pas le bon
Posté le 09-09-2008 à 11:50:20  profilanswer
 

Si tu mets l'appel au sgbd dans le constructeur de ta classe ca initialisera ta liste au premier appel de ta page.

n°1784451
brisssou
8-/
Posté le 09-09-2008 à 13:54:20  profilanswer
 

j'y connais rien en JSF, mais si c'est ça la solution, je veux rien savoir de plus sur cette techno...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1784463
jan san ka​r
profil : pas le bon
Posté le 09-09-2008 à 14:13:05  profilanswer
 

j'ai pas dit que c'était propre comme solution :o

 

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.


Message édité par jan san kar le 09-09-2008 à 14:15:47
n°1788634
lipao
Posté le 18-09-2008 à 14:16:57  profilanswer
 

une solution avec le phase lisneter
 
etend la classe phaseListener de JSF, un exemple  ici
 
ensuite dans la methode afterPhase
 

Code :
  1. HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
  2. if (phaseid == PhaseId.RESTORE_VIEW || phaseid == PhaseId.INVOKE_APPLICATION) {
  3. String viewId = context.getViewRoot().getViewId();
  4. if (viewId != null && "bouchon.faces".equals(viewId)) {
  5. //traitement test et redirection
  6. try {
  7. response.sendRedirect("page1.faces" );
  8. } catch (IOException e1) {
  9. }
  10. }


 
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


Message édité par lipao le 18-09-2008 à 14:19:07

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JSF] Peut-on executer du code java avant d'appeler la jsp ?

 

Sujets relatifs
Copie superficielle et copie profonde en JAVAC# comparativement à Java
Définir Code boutons dans une boucle ?parser html avec java
[Resolu][RegExp] filtre sur code postalpb applet et classe java
Incompatibilité code HTML/Javascript Firefox / IE7Commentaire de code ? Auto génération ?
Executer du php dans du SQL ?Appli Java, Compression gzip des jsp
Plus de sujets relatifs à : [JSF] Peut-on executer du code java avant d'appeler la jsp ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR