IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

probleme de struts et session


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 51
    Points : 29
    Points
    29
    Par défaut probleme de struts et session
    Salut tous le monde
    Je suis entrain de réaliser d'une application struts et j'ai le problème suivant:
    J’ai un formulaire .jsp qui contient des zones de texte, une fois que j'ai rempli ces zone de texte et j'ai cliquer sur submit (pour aller sur une autre page ) en revenant vers cette page toue les information saisie sont présente puisque elle sont stocké dans le bean formulaire; mais lorsque je clique sur un lien du formulaire jsp au lieu de cliquer sur le submit , en revenant vers mon formulaire toute les données saisie dans les zone de texte sont effacé.
    Toute suggestion est la bien venu

    Merci d'avance

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Si tu n'appelles pas le contrôleur lié au formulaire, les données ne sont pas sauvegardées (ce qui est le cas avec tes liens)
    Il faudrait que tu gères le lien par le contrôleur, en utilisant par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActionForward actionForward = new RedirectingActionForward();
    actionForward.setPath(url);
    A+

  3. #3
    Membre actif
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Points : 212
    Points
    212
    Par défaut
    Il faut que tes données saisies soi submités, pour qu'elles puissent rester dans ton bean. Pour ça tu peux submitter ton form apr une simple action intermediaire qui fait que forward et aprés t'appel ton lien

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    merci pour vos reponse

    le probleme est que je suis novice, donc je n'est pas bien saisie ce que vous m'avez proposer concerant l'action intermédiaire
    par exemple ou devrai je mettre ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActionForward actionForward = new RedirectingActionForward();
    actionForward.setPath(url);
    et comment l'appeler, est ce que j'ajoute cette action dans struts-config.xml.

    est ce que vous pouver me donner un petit exemple.

    merci d'avance

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ca se met dans l'action (execute si tu étends Action ou la méthode concernée si tu étends DispatchAction)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
    {
       ActionForward forward = null;
       try
       {
          ...
          forward = new RedirectingActionForward();
          forward.setPath("http://www.ibm.com");
       }
       catch (Exception e)
       {
          ...
       }
       return forward;
    }

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    merci OButterlin
    les choses ne me sont pas toujours claire, est ce que ça ce passe comme ça:
    j'ai deux jsp first.jsp et second.jsp
    1)la jsp first.jsp contient un lien qui appel l'action secondAction.do (par quel balise réaliser ce lien html: link ou bien logic: forward ?)
    2)secondAction.do c'est l'action qui me redirige vers la page second.jsp est ce que c'est cette action qui devrai contenir cette portion de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActionForward actionForward = new RedirectingActionForward();
    actionForward.setPath(url);
    3) on supposant que la page first.jsp est atteinte par l'action firstAction.do est ce qu'il faudrait mettre url="/firstAction" dans cette instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    actionForward.setPath(url);
    merci encore

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    salut
    pour ma premiere question sur la realisation du lien je sait que j'ai dit une betise
    il est claire qu'il faut utiliser la balise html : link mais pour le reste je n'set aucune idée

    merci d'avance

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Là, je pense que tu te compliques la vie, le plus simple serait de passer par un formulaire et d'appeler l'action avec un bouton submit (tout simplement).
    Si ton problème est lié au fait que ta page peut avoir plusieurs boutons d'action, il faut juste passer par un contrôleur qui étende DispatchAction ou LookupDispatchAction (à la place de Action)
    Mais comme dit, si tu veux saisir des informations dans firstPage.jsp, cliquer sur un bouton et afficher secondPage.jsp avec des données de firstPage.jsp en passant par une action (disons FirstAction), tu auras une page de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html:form action="/firstAction.do">
     
    Nom <html:input property="nom"/><br>
    Prénom <html:input property="prenom"/><br>
    <br>
    <html:submit>Envoyer</html:submit>
    </html:form>
    un formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class FirstForm extends ActionForm
    {
       private String nom = null;
       private String prenom = null;
     
       public String getNom()
       {
          return nom;
       }
       public void setNom(String nom)
       {
          this.nom = nom;
       }
    etc...
    }
    un contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class FirstAction extends Action
    {
       public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
       {
          FirstForm _form = (FirstForm)form;
          ...
          if ( toutEstOK) return mapping.findForward("succes");
          else return mapping.findForward("erreur");
       }
    }
    Je te laisse faire le mapping dans struts-config.xml

    A+

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    merci OButterlin
    mon probléme n'est pas de réaliser un simple passage entre deux page jsp en utilisant un submit mais voila ce que je veux realiser
    la page firstPage.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <html:form action="/firstAction.do">
    Matricule <html:input property="matricule"/>
    Login <html:input property="login"/><html:link action="/find employe">search Employe</html:link><br>
    Pass word <html:input property="password"/><br>
    confirmer Pass word <html:input property="confirmpassword"/><br>
    profil : <html:select property="profil" size="5" > 
    	   <html:optionsCollection  property="valprofil"/>
    	     </html:select><br/>
    <br>
    <html:submit>Envoyer</html:submit>
    </html:form>
    et
    la page secondPage.jsp est une page qui permet de rechrcher un employe et qui retourne le matricule qui serra afficher dans firstPage.jsp
    le probleme que j'ai rencontrer est que si apres avoir remplit les champs de firstPage.jsp l'utilsateur decide de lancer la recherche tout ce qu'il a saisie s'efface une fois revenu de secondPage.jsp vers firstPage.jsp
    et je n'set pas compris ce que tu a dit ici
    Si ton problème est lié au fait que ta page peut avoir plusieurs boutons d'action, il faut juste passer par un contrôleur qui étende DispatchAction ou LookupDispatchAction (à la place de Action)
    est ce que tu veut dire que je pourait utilser la meme action qui prend en charge le submit et le lien et puis celon ce quia etait cliquer l'action fait des test et me redirige vers la bonne page?
    TANK YOU



    merci encore

  10. #10
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    merci Obutterlin
    votre aide m'a eté precieuse, j'ai reussi à rendre mon bean persistant dans la session meme en cliquant sur un lien la solution est la suivante:
    j'ai coder en dure un parametre search dans le lien comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:link  onclick="document.forms[0].submit();"   action="/newUser.do?search=oui" >cliquer </html:link>
    et dans la balise form j'ai utilser ce paramettre avec la valeur non comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/newUser.do?search=non"   >
    ensuite il me rester plus que de faire des teste sur ce paramettre dans l'action
    et evidement en utilsant la redirection que vous m'avez suggerer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		NewUserForm newUserForm = (NewUserForm) form;
    		
    		//////
    		
    		if(((String)request.getParameter("search")).equals((String)"oui")){
    		try
    		   {
    		     
    			ActionForward  forward = new RedirectingActionForward();
    		      forward.setPath("/criterSearchEmp.do");
    		      return forward;
    		   }
    		   catch (Exception e)
    		   {
    		      
    		   }
    		}  			
    		..........................................
    		return mapping.findForward("successCreationUser") ;
    	}
    merci beaucoup pour votre aide OButterlin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme d'identification avec sessions PHP
    Par bontbont dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 20h15
  2. [Sécurité] Problème d'expiration de session
    Par marciv dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 00h29
  3. [Session]Problème de fermeture de session
    Par july dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 16/06/2005, 13h25
  4. [JSP] probleme d'invalidation de session
    Par Jovial dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 04/06/2004, 16h27
  5. [struts]Variable session
    Par ansarim dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/02/2004, 13h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo