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 :

Fonction de "request.setAttribute "


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut Fonction de "request.setAttribute "
    Bonjour,

    Extrait du tuto :

    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
    public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) { 
    		ActionErrors errors = new ActionErrors(); 
    		if(nom == null || nom.length()==0) { 
    			errors.add("nom",new ActionError("error.nom.required")); 
    		} 
    		if(prenom == null || prenom.length()==0) 
    		{ 
    			errors.add("prenom",new ActionError("error.prenom.required")); 
    		} 
    		if(email == null || email.length()==0) 
    		{ 
    			errors.add("email",new ActionError("error.email.required")); 
    		}
    		return errors; 
    	}
    Nous allons ensuite surcharger la méthode execute() de la classe UserinputAction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	méthode execute()
    	public ActionForward execute( ActionMapping mapping, ActionForm form, 
    			HttpServletRequest request, HttpServletResponse response) throws Exception 
    			{ 
    		UserinputForm userinputForm = (UserinputForm) form; 
    		request.setAttribute("prenom", userinputForm.getPrenom()); 
    		request.setAttribute("nom",userinputForm.getNom()); 
    		request.setAttribute("email",userinputForm.getEmail()); 
    		return mapping.findForward("succes"); 
    }
     
    }
    je ne comprends vraiment pas qu'est ce que cela fait ? et a quoi ca sert au niveau du mapping.findForward("succes"); ...

    on alimente, modifie une requete ? hum ....


    Merci.

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Avec le framework Struts, on va utiliser des classes Action pour éventuellement faire des traitements. La méthode execute est celle qui sera appelé automatiquement quand on fera appelle à une classe Action dans le struts-config.
    Dans ce cas, le mapping.findForward() va servir à appeller un forward de l'action du struts-config qui va permettre de rediriger vers une JSP ou un tiles (dans le cas où tu utiliserais les Tiles)

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      <action-mappings>
        <action path="/ornek_gonder"
            type="com.sirket.filanca.OrnekAction"
            name="OrnekForm">
            <forward name="basari" path="/goster.jsp"/>
            <forward name="hata" path="/hata.jsp"/>
        </action>
      </action-mappings>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mapping.findForward("basari")
    //redirigera vers goster.jsp
     
    mapping.findForward("hata")
    //redirigera vers hata.jsp

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut
    oui oui merci.

    mais heu ... request.setAttribute ? c'etait ce que je ne comprenais pas trop (me suis mal exprimé dans le contenue)

  4. #4
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Ah ok, setAttribute va te permettre de transmettre/conserver des données (ici dans le scope request si je ne m'abuse). Celles ci pourront alors être récupérées dans une JSP par exemple.
    Ce qu'il faut comprendre dans ton exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserinputForm userinputForm = (UserinputForm) form;
    C'est que tu as un ActionForm nommé UserinputForm. Ses attributs ont du être rempli à la suite d'une soumission d'un formulaire situé dans un des JSP. Donc pour appeler ses méthodes, tu castes l'ActionForm de la méthode execute.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     request.setAttribute("prenom",userinputForm.getPrenom());
    Ainsi, tu mets en mémoire un attribut prenom qui prendra la valeur du champ texte "prenom" qui a été saisi dans le formulaire de la JSP.

    Tu pourras alors récupérer cette valeur en faisant l'opération suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     request.getAttribute("prenom");

Discussions similaires

  1. mettre un parametre d'une fonction dans un request.setAttribute
    Par john_wili dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/03/2009, 14h34
  2. Réponses: 2
    Dernier message: 15/05/2008, 22h26

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