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 :

[Struts] Gestion de param�tres


Sujet :

Struts 1 Java

  1. #1
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut [Struts] Gestion de param�tres
    Bonjour,

    J'ai une page d'accueil contenant des liens du type :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    VoirForumMessage.do?id=42
    Ce lien permet d'afficher le message dont l'identifiant est 42.

    Mais pour visualiser ce message, il faut �tre identifi�, donc s'il ne l'est pas, l'utilisateur est redirig� vers une page d'identification.
    Cette page est un formulaire avec login et mot de passe tout ce qu'il y a de plus simple et banale.
    Il est reli� � une action qui redirigera vers la page demand�e au d�part, c'est � dire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    VoirForumMessage.do?id=42
    Mon probl�me est le suivant, quelle est d'apr�s vous la meilleure technique pour transmettre le param�tre id du lien d'origine dans ce formulaire car pour rediriger par la suite, je suis oblig� de transmettre le param�tre id, sinon je ne saurais pas quel message afficher. Vous me suivez ?

    J'ai pens� aux champs cach�s mais cela est trop statique � mon gout car il y a autre chose dont je n'ai pas parl�, il y a plusieurs pages qui peuvent demander une authentification, certaines avec des param�tres comme :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    VoirForumMessage.do?id=42
    qui affiche un message
    D'autres non, comme
    qui affiche les salles du forum

    Il me faudrait un syst�me dynamique et propre qui suivant les cas transmettent des param�tres ou non par le formulaire ou non.

    J'ai aussi pens� � stocker un HashMap qui contiennent les param�tres, le stocker en session ou request (setAttribute), mais est-ce vraiment propre ?

    J'esp�re �tre clair, c'est un probl�me que vous avez du rencontrer si vous cr�ez des sites qui demandent une authentification

    S'il y a un probl�me de conception, n'hesitez pas � me le dire afin que je refonde une partie du syst�me si n�cessaire car on prend vite de mauvaises habitudes...

    Merci d'avance pour votre aide et vive Developpez.com !

  2. #2
    Membre confirm�
    Inscrit en
    Mai 2004
    Messages
    62
    D�tails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Par d�faut
    salut,
    Perso je trouve que les objets request et session sont pratique et propre � utiliser.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    //pour récupérer ma valeur id et la retransmettre dans l'url
    String id = (String)request.getParameter("id");
    String sPth = "/voirForumMessage.do?id="+id;

  3. #3
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut
    Attention, je ne pense pas que le code que tu m'as fourni peut me convenir car je passe par un formulaire ... Et la question est bien :
    Comment je peux passer proprement mes param�tres � traver le formulaire
    Alors, ok, tu me conseilles les session/request mais y'en a t-il d'autres ?

  4. #4
    Membre �m�rite
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    D�tails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par d�faut
    Perso je mettrai l'url complete du referer en session.

    Ensuite tu fais un mecanisme de redirection silmple (requestDispatcher) qui renvois sur la page voulu, a la diff�rence que l'utilisateur est logu�

  5. #5
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut
    Excuse moi mais peut �tre d�tailler un peu plus, j'ai quelques difficult�s � tout comprendre.
    Perso je mettrai l'url complete du referer en session.
    Ca veut dire que tu me conseilles de mettre tous les param�tres et les valeurs en session ? Dans un objet ?

  6. #6
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut
    Plus j'y repense plus je me dis qu'une petite proc�dure g�n�rant des champs cach�s automatiquement serait le plus simple, vous en pensez quoi ? Mettre des infos en session, ca me fait pas grimper aux rideaux...

  7. #7
    Membre �m�rite
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    D�tails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par d�faut
    non je parle de l'url complete " http://monserveur.dfjksdffgf....=42"

    Tu peux recuperer ca lors de la soumission ds la request.

    Si le client n'est pas logu�, tu va le loguer en lui mettant ds sa session cette url.

    lorque il est logu�, tu recuperes cette url et tu fait fais un forward vers celle ci.

  8. #8
    Membre �m�rite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par d�faut
    Soit conserver le referer quelque part, mais tu risque de le perdre si l'utilisateur se trompe sur la page de login et que tu boucle dessus.

    Soit effectivement l'envoyer a la page de login dans un champ cach�.

    dans ton action :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    pageDemandée = request ( ou form ) .getParameter("id");
    is( utilisateur connecté )
      faire l'action
    sinon
      ajouter l'id au request
      rerouter vers login.
    et dans le login

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    si ( loginOk )
      si ( id présent )
        aller à l'id
      sinon
        aller à la page standard
    j'utilise simplement l'id ici mais en fait, tu devrais stocker l'url ( relative ) dans ton cas, l'�quivalent du "referer".

  9. #9
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut
    Honte sur moi ... J'ai une question ...
    Qu'appelez vous un referer ? Je dois l'appeler sous un autre nom moins barbare ^^;

  10. #10
    Membre �m�rite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par d�faut
    REFERER est une balise de l'ent�te HTTP contenant l'url de provenence.

    http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z14 ( pour la d�finition )

    De m�moire, tu la r�cup�re ainsi dans un servlet :

  11. #11
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut
    ok je pense avoir compris, je stocke l'adresse demand�e dans l'objet Session et je l'utilise d�s que je suis identifi� pour me rediriger vers la page demand�e � l'origine !

    Donc, c'est une solution que vous envisagez...
    D'autres propositions ?

  12. #12
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut
    J'ai essay� le getHeader("Referer"),
    Il me renvoie la page qui contient le lien mais pas le lien en lui m�me...
    Je pense que je vais me tourner vers les champs cach�s du formulaire.
    Merci

  13. #13
    Membre confirm�
    Inscrit en
    Avril 2003
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Par d�faut
    Ca y est, c'est fait, pour info, je vous explique ce que j'ai fait.
    J'ai proc�d� � la g�n�ration automatique de champs cach�s dans le formulaire en fonction des param�tres pass�s. De cette mani�re je transmet au processus d'identification les informations pour la redirection.

    Ensuite, si l'identification est ok, on r�cup�re de mani�re automatique les infos, je reg�n�re le lien d'origine, et hop redirection.

    Ce qui est bien, c'est que le processus est g�n�rique, il s'adapte automatiquement. Toute nouvelle page que je souhaite prot�ger par une identification peut l'�tre en 30 secondes, il suffit de rediriger l'action vers l'identification.

    Merci � tous pour votre pr�cieuse aide

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 19/04/2005, 13h42
  2. [Struts] lien et param�tres
    Par biohazard dans le forum Struts 1
    R�ponses: 3
    Dernier message: 24/03/2005, 18h31
  3. [Struts]Gestion des timeout de session
    Par JohnBlatt dans le forum Struts 1
    R�ponses: 3
    Dernier message: 13/12/2004, 14h49
  4. [Struts] Gestion de session
    Par Nuncyco dans le forum Struts 1
    R�ponses: 3
    Dernier message: 24/06/2004, 11h11
  5. [struts] passer un param�tre de page via un findForward
    Par Boosters dans le forum Struts 1
    R�ponses: 4
    Dernier message: 08/03/2004, 17h35

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