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 :

Utiliser la session


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Par défaut Utiliser la session
    Bonjour à tous.

    J'ai cherché sur le forum et sur google une solution à mon problème mais je n'en trouve pas. Ou plus exactement, je n'ai pas l'impression d'en trouver (je débute avec JEE et Struts, le vocabulaire et les subtilités de la chose m'échappent) qui répondent à ce que je cherche.

    Donc, pour situer le contexte, j'ai crée un formulaire simple dans un jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html:form action="/accueil" method="POST" >
    	Login: <html:text property="login" size="10"/>
    	Password: <html:password property="password" size="10"/>
    	<html:submit value="S'identifier"/>
    </html:form>
    Puis j'ai défini dans mon fichier struts-config le form bean et l'action suivante

    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
    <form-beans>
    	<form-bean
    		name="FormulaireLogin"
    		type="session.FormulaireLogin"
    	>
    		<form-property name="login" type="java.lang.String" initial=""/>
    		<form-property name="password" type="java.lang.String" initial=""/>
    	</form-bean>
    </form-beans>
     
    <action-mappings>
    	<action
    		path="/accueil"
    		name="FormulaireLogin"
    		scope="session"
    		validate="true"
    		input="/erreurs.do"
    		parameter="/unePage.do"
    		type="org.apache.struts.actions.ForwardAction"
    	/>
    ...
    Tout naturellement, avec ma classe FormulaireLogin (qui extends ActionForm) j'arrive à récupérer mes données login et password. Jusque là aucun problème.

    Maintenant, j'aimerais savoir si, du moment que scope="session", il est possible d'exploiter ces deux données dans d'autres classes d'action (extends Action) ou dans d'autres jsp ?

    Si oui, comment est-ce que cela peut se faire ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Par défaut
    Bon, en fait, en réfléchissant je viens de trouver la solution. J'ai bêtement testé en remplaçant un request par un session dans un jsp, le reste est venu tout seul.

    Action, ActionForm, DynaActionForm, etc... reçoivent un HttpServletRequest request, il suffit donc d'écrire dans mon FormulaireLogin les données supplémentaires à inscrire en session : request.getSession().setAttribute("NomAttribut", DonneeAttribut);

    Ainsi, dans le jsp on peut récupérer ça par : <%= session.getAttribute("NomAttribut") %> ou pour ceux qui aiment les taglibs : pageContext.getSession().getAttribute("NomAttribut") (à partir du moment où le taglib extends TagSupport et consorts).

    Bon, histoire de ne pas vous avoir dérangés pour rien, cette façon de faire est-elle la bonne ? Ai-je des choses à savoir vis à vis de sa sécurité ? Existe t'il des alternatives ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Comme ton mapping est en scope session, struts enregistre le bean formulaire en session sous un nom réservé.

    A tout moment tu peux y accéder par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession(false).getAttribute
    Mais je ne trouve pas que ce soit une bonne solution de laisser trainer en session des formulaires. Copies les données dans un bean et mets le bean en session si tu en a vraiment besoin.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Action, ActionForm, DynaActionForm, etc... reçoivent un HttpServletRequest request, il suffit donc d'écrire dans mon FormulaireLogin les données supplémentaires à inscrire en session : request.getSession().setAttribute("NomAttribut", DonneeAttribut);
    Houla, tu vas un peu vite en besogne. Un actionForm reçoit effectivement une request dans la signature des méthodes reset et validate. Mais ces méthodes ne sont pas là pour "bidouiller" le contexte d'exécution et encore moins pour accéder à la request. Et oui, Struts est vieux et il est trop ouvert.

    Ce qu'il faut que tu fasses, c'est que tu places tes attributs en session dans l'exécution de ta classe d'action (méthode execute par exemple).

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Par défaut
    Merci pour vos précisions.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/09/2005, 10h21
  2. Réponses: 5
    Dernier message: 22/08/2005, 16h48
  3. Utilisation de [Session] et de [BDD]
    Par Alexr dans le forum JDBC
    Réponses: 1
    Dernier message: 21/06/2005, 14h09
  4. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40
  5. [JSP] Utilisation de session
    Par samios dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/11/2004, 11h17

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