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 :

[DispatchAction]passe 2 fois dans le meme méthode ..


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut [DispatchAction]passe 2 fois dans le meme méthode ..
    bonjour,

    j'ai le problème suivant, lorsque je clique sur le bouton valider ou supprimer de mon formulaire suivant. Ca passe 2 fois par la méthode correspondante, remove ou validate.

    je ne comprend pas pourquoi =_='

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
     
    <html:form styleId="lots" action="ValidationSuppressionAction" method="POST">    
    <logic:iterate id="ConsigneNonValide" name="LISTCONSIGNESNONVALIDES" property="listeConsignesScheduling">        
     
    <html:hidden property="hidden" name="hidden" value=""/>
     
                        <tr style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;" valign="top">
     
                          <td style=" text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                          <bean:write name="ConsigneNonValide" property="dateCreation"/>
                          </td>                                  
                        <td style=" text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                        <bean:write name="ConsigneNonValide" property="session"/>
                        </td>
     
                        <td style=" text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                        <bean:write name="ConsigneNonValide" property="ug"/>
                        </td>
     
                        <td style=" text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                            <bean:write name="ConsigneNonValide" property="uproc_job"/>
                        </td>
                        <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                        <bean:write name="ConsigneNonValide" property="code_erreur"/>
                        </td>
                        <td style=" text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                        <bean:write name="ConsigneNonValide" property="contenu"/>
                        </td>  
     
                        <td style=" text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                        <bean:write name="ConsigneNonValide" property="trigramme"/>
                        </td>
     
                        <td  style=" text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                        <a target="_blank" style="color:black;" href="http://vmpar02har1:8080/WebApplication2/AfficheConsigneFr.do?id=<bean:write name="ConsigneNonValide" property="id_consigne"/>">
                        <img border="0" style="width: 17px; height: 11px;" alt="" src="Images\france.bmp">
                        </a>
                        <a target="_blank" style="color:black;" href="http://vmpar02har1:8080/WebApplication2/AfficheConsigneAn.do?id=<bean:write name="ConsigneNonValide" property="id_consigne"/>">
                        <img border="0" style="width: 17px; height: 11px;" alt="" src="Images\angeterre.bmp">
                        </a>
     
                        </td>
     
                        <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:#F1EEE9; font-weight: bold; font-family: Arial; font-size:10px;">
                        <bean:write name="ConsigneNonValide" property="existence" />
                        </td>  
     
                        <td >
                          <input type = "checkbox" name="idValidation" value="<bean:write name="ConsigneNonValide" property="id"/>"/>
                        </td>
     
                        <td valign="bottom">
                            <html:image property="submit" src="Images\poubelle.gif" onclick="if(window.confirm('Vous êtes sur de vouloir supprimer'))
                                                        {setHidden('remove');
                                                            location.href='Etat_publication.jsp';return true;} else {return false;}">
                            </html:image>
     
                        </td>
                        <td valign="bottom">
                             <html:image style="width: 15px; height:15px; " property="submit" src="Images\f_5_.gif" onclick="if(window.confirm('Vous êtes sur de vouloir valider'))
                                                                                                                                {setHidden('validate');
                                                                                                                                location.href='Etat_publication.jsp';return true;} else {return false;}">"> 
                             </html:image>
                        </td>
                         </tr>
        </logic:iterate>
    </html:form>
    dans mon struts-conf, j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      <action path="/ValidationSuppressionAction"
                type="fr.edition.eni.action.ValidationSuppressionAction"
                scope="request"
                name="EtatPublicationForm"
                input="/LancerConsignesNonValidesAction.do"
                validate="true"
                parameter="hidden">
                <forward name="success" path="/LancerConsignesNonValidesActionSansAuthentification.do" redirect="true"></forward>
                <forward name="erreur" path="/LancerConsignesNonValidesAction.do"></forward>
            </action>
    et mes méthode validate et remove:

    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 validate(ActionMapping mapping,ActionForm form, 
                                     HttpServletRequest request, HttpServletResponse response)throws Exception{
     
                         EtatPublicationForm consignesForm = (EtatPublicationForm) form;
            System.out.println("// ne pas envoyer à cette personne null mail 2 ");
     
        }   
     
          public ActionForward remove(ActionMapping mapping, ActionForm form, HttpServletRequest request, 
                     HttpServletResponse response)throws Exception{
                    EtatPublicationForm consignesForm = (EtatPublicationForm) form;
     
                    System.out.println("//// Id consigne à supprimer : " );
     
       }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Par défaut
    au lieu de:
    location.href='Etat_publication.jsp';return true;
    essaye:
    document.forms[0].submit();

  3. #3
    Membre éclairé Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Par défaut
    Ca change rien

  4. #4
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonsoir,
    j'ai eu exactement le meme probleme mais uniquement sur IE, (sur firefox ca ne le faisait pas). Le probleme venait du fait que j'avais un bouton submit qui avait un evenement onclick="document.forms[0].submit();". En fait c'est une erreur, car le bouton submit poste le formulaire par defaut, du coup sous IE, mon formulaire etait poste 2 fois : un post declenché du a mon bouton submit + un post du a l'evenement onclick.

    Je pense que tu as le meme probleme, que moi :
    je croies que le html:image te genere <input type="image"... qui est en fait un bouton submit avec une image. (Tu peux tester en enlevant le onclick et verifier que ca poste bien ton formualire), ensuite tu fait en javascript location.href=, qui va appeler a nouveau le serveur, ceci expliquerai tes 2 appels a ton action.

    Pour gerer ton cas tu devrais modifier l'action de ton formulaire comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].action='Etat_publication.jsp'
    Code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                             <html:image style="width: 15px; height:15px; " property="submit" src="Images\f_5_.gif" onclick="if(window.confirm('Vous êtes sur de vouloir valider'))
                                                                                                                                {setHidden('validate');
                                                                                                                                document.forms[0].action='Etat_publication.jsp';return true;} else {return false;}">"> 
                             </html:image>
    Angelo

Discussions similaires

  1. [XL-2007] Sous_total somme et moyenne à la fois dans une meme ligne
    Par hadi2007 dans le forum Excel
    Réponses: 1
    Dernier message: 09/02/2012, 15h04
  2. Réponses: 19
    Dernier message: 08/06/2010, 09h22
  3. deux méthodes validate dans un meme form bean
    Par newmar dans le forum Struts 1
    Réponses: 3
    Dernier message: 11/05/2008, 18h59
  4. boucle while - passe deux fois dans la boucle.
    Par Benji01 dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/05/2008, 12h23
  5. Mon script passe une fois de trop dans la boucle
    Par Stessy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2006, 11h57

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