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 :

traitement javascript avant le <logic:forward>


Sujet :

Struts 1 Java

  1. #1
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut traitement javascript avant le <logic:forward>
    Bonjour,

    j'ai le problème suivant:

    j'ai cette instruction dans ma première page qui permet de rediriger directement vers la seconde:
    <logic:forward name="LancerAcceuilAction"/>

    mais dedans j'ai mis un traitemnt javascript
    or elle n'effectue pas ce traitement javascript elle renvoie direct vers l'autre page.. Ce que je ne savais pas, je pensais qu'elle ferait d'abord le traitement et ensuite le forward..

    Comment faire pour que ca marche sur la première avant que ca redirige vers la 2ème..
    la solution aurait put etre de mettre la page dans le action de la form mais moi je ve lancer la classe action LancerAccueilAction et non pas la page directement (sinon ca ne met pas a jour les données de ma page d'acceuil et ca génére une exception)..

  2. #2
    Membre régulier Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Points : 111
    Points
    111
    Par défaut
    J'ai pas bien compris où ton javascript se situé ! Pourrai tu etre plus clair ou nous donner un exemple stp ?

  3. #3
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    oui je réexplique,

    j'ai mis du code javascript dans la première page et l'utisateur ne voit jamais cette page c'est normal c'est voulu mais le problème c'est le logic:forward redirige directement vers une seconde page sans avoir effectuer le traitement ..

    je sais pas si c clair..

    Enfin là je viens d'avoir une idée :
    faire un <html:form action=LancerAcceuil.do et d'enlever le logic forward mais j'ai besoin de donner un nom a ce form mais la propriété name n'existe pas dans le tag html:form .

    Si tu as une meilleur idée ?

  4. #4
    Membre régulier Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Points : 111
    Points
    111
    Par défaut
    Ton jvascript est mis avant ton logic forward ou pas?
    pourrai tu me montrer ce que tu as fait stp?

  5. #5
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    A mon avis, ce que tu veux faire, ou plutot, la facon dont tu veux le faire n'est tout simplement pas possible.
    Le forward sera à mon avis toujours appelé avant le javascript. Heureusement que ca fonctionne dans ce sens la. Imagine, si le javascript etait "utilisé" avant que les balise struts aient "produit leur effet", quand on lance une verification de formulaire en JS en entrée de page, les champs ne seraient pas créés (s'ils sont en tag struts) et ca serait génant !
    J'ai une solution intermédiaire pour toi qui me vient comme ca, mais à mon avis, c'est pas génial et il y a mieux.
    dans ta page que tu ne veux pas afficher, tu mets un formulaire <form> et tu appele ta fonction JS. A la fin de celle ci, tu valide ton formulaire qui a comme action ta page suivante.

  6. #6
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    oui j'ai pensé a ca et ca marche pour le moment donc je vais laisser comme ca.

    Merci

  7. #7
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Pour appuyer viena, je dirais même plus que cela vient d'un problème de terminologie.

    Javascript, c'est coté client (une fois que la page est affichée au client).
    Forward, c'est coté serveur (l'url ne change pas, c'est le serveur en interne qui fait suivre une 'request' et une 'response'),

    Il est donc normal que si tu fais un forward, le javascript ne soit pas interpreté.

  8. #8
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    J'ai encore une question par rapport à ca.
    J'ai fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form name="soumettre" method="post"  style="display:none" action="LancerAcceuilAction.do">
       <html:hidden name="login" property="hidden" value="default"/>
     
    </form>
    mais quand j'essayede récupérer la variable login dans le execute de L'action LancerAcceuilAction, il ne me le récupère pas, je comprend pas pourquoi.

  9. #9
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Tu peux nous fournir ton code JS stp ?

  10. #10
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    En fait il me renvoie toujours default alors que je modifie dans la fonction soumettre..

    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
    <script language="javascript">
    var obj = new ActiveXObject('WScript.Network');
    var user=obj.UserName; 
     
    function soumettre() 
    {
     document.forms['soumettre'].submit();
     document.forms['soumettre'].login.value=user;
    }
     
    </script>
    </head>
     
    <body onload="soumettre()">
     
    <form name="soumettre" method="post"  style="display:none" action="LancerAcceuilAction.do">
       <input type="hidden" name="login" property="hidden" value="default"/>
     
    </form>
    </body>

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 69
    Points
    69
    Par défaut
    J'ai encore une question par rapport à ca.
    J'ai fais ceci:

    Code :

    <form name="soumettre" method="post" style="display:none" action="LancerAcceuilAction.do"> <html:hidden name="login" property="hidden" value="default"/> </form>


    mais quand j'essayede récupérer la variable login dans le execute de L'action LancerAcceuilAction, il ne me le récupère pas, je comprend pas pourquoi.
    Il me semble que tu récupère ce qu'il y a dans l'attribut "propery", à savoir ici la valeur "hidden"

    Thomas

  12. #12
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    Non je récupère défault ..

  13. #13
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Si tu modifies le champs après le submit, la modification est inutile.
    Il faut : modifier la valeur du champs et ensuite submitter. le submit va récupérer les valeur de champs (et donc celle que tu as mise) et les envoyer au serveur via la request.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function soumettre() 
    {
     document.forms['soumettre'].login.value=user;
     document.forms['soumettre'].submit();
    }

  14. #14
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    Oui c'est trop bete


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

Discussions similaires

  1. Affichage d'une image pendant un traitement javascript
    Par aurelien.tournier dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/12/2010, 10h09
  2. Equivalent de la balise <logic:forward>
    Par Craukette dans le forum Struts 2
    Réponses: 7
    Dernier message: 04/11/2010, 13h34
  3. logic:forward ne se realise pas
    Par brainbibou dans le forum Struts 1
    Réponses: 0
    Dernier message: 06/08/2010, 13h24
  4. Les traitement Javascript ne fonctionnent plus
    Par paradeofphp dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/01/2008, 13h48
  5. Réponses: 2
    Dernier message: 03/06/2006, 00h34

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