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 :

Probleme Formulaire imbriques


Sujet :

Struts 1 Java

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut Probleme Formulaire imbriques

    J'ai une page JSP qui contient un tableau et sur chaque ligne j'ai un checkbox, les données de la ligne et ensuite deux boutons supprimer et valider. Je veux qu'on selectionnant le checkbox et en appuyant sur l'un ou l'autre des boutons j'ai l'action correspondante qui est effectués.

    Je voulais faire un formulaire avec deux actios mais ça ne marchait pas. Ensuite j'ai essaye de faire des formulaires imbriqués mais ça ne marchai pas non plus.
    je poste ici mon code :
    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
     
    <html:form action="Consignes_OrdoNonValidesSuppressionAction" method="POST">
     
        <html:form action="ValidationAction" method="POST">
     
    <logic:iterate id="ConsigneNonValide" name="LISTCONSIGNESNONVALIDES" property="listeConsignesScheduling">                                       
     
                        <tr style="font-weight: bold; font-family: Arial; font-size:11px;" valign="top">
                        <td>
                             <input type = "checkbox" name="sessioSuppr" value="<bean:write name="ConsigneNonValide" property="session"/>"/> 
     
    <input type = "checkbox" name="sessionvalidation" value="<bean:write name="ConsigneNonValide" property="session"/>"/>                          
                        </td>
     
                        <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small>
                        &nbsp;
                        <bean:write name="ConsigneNonValide" property="session"/></small>
                        </td>
                                           <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small><small>
                        <bean:write name="ConsigneNonValide" property="uproc_job"/></small>
                        </td>
                                            <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="code_erreur"/></small>
                        </td>
                                            <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid;
                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="contenu"/></small>
                        </td>  
     
     
                         <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="trigramme"/></small>
                        </td>
     
     
                         <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold;font-family: Arial; font-size:11px; width:100px"><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="auteur" /></small>
                        </td>   
     
     
                        <td>&nbsp;&nbsp;
                            <html:submit value="validate"  style="width:80px; height: 20px;"> 
                             </html:submit>
                        </td>
                        <td>
                             <html:submit value="Remove"  style="width:80px; height: 20px;"> 
                             </html:submit>
                        </td>
                         </tr>
    </logic:iterate>
    </html:form>
    </html:form>

    quelqu'un aura une solution ou une proposition comment faire.
    Merci.

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    les formulaires ne peuvent pas s'imbriquer comme tu le fais. Tu as 2 possibilités pour résoudre ton problème :
    1- tu changes en javascript l'action au moment click sur le bouton.
    2- meilleur solution, tu diriges toutes les validations vers la meme action qui elle meme redirige vers 2 actions différente suivant le parametre du bouton valider (tu peux mettre un property dans le html:submit et tester dans l'action si tu as bien le parametre dans la request).

  3. #3
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Jette un oeil à la DispatchAction ou LookupDispatchAction dans la FAQ.
    Modératrice Java - Struts, Servlets/JSP, ...

  4. #4
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    J’ai suivi les instructions qui se trouvent dans la FAQ et j’ai une exception.
    Je poste tout d’abord mon code et ensuite mon exception.

    Dans ma page JSP j’ai rajouté le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script>
          function setHidden(value){document.formulaire.hidden.value=value;}
      </script>
    mon formulaire :
    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
    <html:form action="ValidationSuppressionAction" method="POST">
     
        <html:hidden property="hidden" value="default"/>
     
    <logic:iterate id="ConsigneNonValide" name="LISTCONSIGNESNONVALIDES" property="listeConsignesScheduling">                                       
     
                        <tr style="font-weight: bold; font-family: Arial; font-size:11px;" valign="top">
                        <td>
                             <input type = "checkbox" name="sessionValidation" value="<bean:write name="ConsigneNonValide" property="session"/>"/> 
                        </td>
     
                        <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small>
                        &nbsp;
                        <bean:write name="ConsigneNonValide" property="session"/></small>
                        </td>
                                           <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small><small>
                        <bean:write name="ConsigneNonValide" property="uproc_job"/></small>
                        </td>
                                            <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="code_erreur"/></small>
                        </td>
                                            <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid;
                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="contenu"/></small>
                        </td>  
     
     
                         <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold; font-family: Arial; font-size:11px;"><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="trigramme"/></small>
                        </td>
     
     
                         <td style="text-align:center; padding:2px 0px 2px 0px;border-bottom: 1px #76001F solid; 
                                            background-color:white; font-weight: bold;font-family: Arial; font-size:11px; width:100px"><small>
                        &nbsp;<bean:write name="ConsigneNonValide" property="auteur" /></small>
                        </td>   
     
     
                        <td>&nbsp;&nbsp;
                            <html:submit onclick="setHidden('remove');">
                                supprimer
                             </html:submit>
                        </td>
                        <td>
                             <html:submit onclick="setHidden('validate');"> 
                                 valider
                             </html:submit>
                        </td>
                         </tr>
    </logic:iterate>
    </html:form>
    Mon action :
    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
    public class ValidationSuppressionAction extends DispatchAction{
     
        /** Creates a new instance of ValidationSuppressionAction */
        public ValidationSuppressionAction() {
        }
     
        /**
         *  Méthode appelé lorsqu'on clique sur le bouton validate
         */
     
        public ActionForward validate(ActionMapping mapping,ActionForm form, 
                                     HttpServletRequest request, HttpServletResponse response)throws Exception{
     
                //AdministrationForm monAdministrationForm=(AdministrationForm) form;
                 ConsignesSchedulingForm consignesForm = (ConsignesSchedulingForm) form;
                 //récupéreation date systeme /////////////////////
                  Date dateValidationConsigne=new Date();
                  Locale locale=Locale.getDefault();
                  DateFormat dateFormat=new SimpleDateFormat("dd/MM/yy");
     
                  System.out.println("*********************** consignes");
                  System.out.println(dateFormat.format(dateValidationConsigne));
                  System.out.println("*********************** consignes");
                  ////////////////////////////
                DataSource ds=getDataSource(request, "enidb");
                Connection cnx=ds.getConnection();
                ConsigneOrdo_NonValide consignesOrdo= new ConsigneOrdo_NonValide();
                // Rajout dans la base des données.
                    consignesOrdo.setSessionValidation(consignesForm.getSessionValidation());
                    consignesOrdo.setDateValidation(dateFormat.format(dateValidationConsigne).toString());
                    return consignesOrdo.validerConsigne(mapping,cnx);                
        }
     
     
        /***
         *
         *  Méthode appelé lorsqu'on clique sur le bouton suppression
         */
     
          public ActionForward remove(ActionMapping mapping, ActionForm form, HttpServletRequest request, 
                HttpServletResponse response)throws Exception{
                    ConsignesSchedulingForm consignesForm = (ConsignesSchedulingForm) form;
                    DataSource ds = getDataSource(request, "enidb");
                    Connection cnx = ds.getConnection();
                    ConsigneOrdo_NonValide consignesOrdonnaceur = new ConsigneOrdo_NonValide();
                    consignesOrdonnaceur.setSessioSuppr(consignesForm.getSessioSuppr());          
                    consignesOrdonnaceur.setUproc_jobSuppr(consignesForm.getUproc_jobSuppr());
                    return consignesOrdonnaceur.deleteConsignesNonValides(mapping,cnx);
       }        
    }
    La déclaration de mon action dans le struts-config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <action path="/ValidationSuppressionAction"
                type="fr.edition.eni.action.ValidationSuppressionAction"
                scope="request"
                name="ConsignesSchedulingForm"
                input="/LancerConsignesNonValidesAction.do"
                validate="true"
                parameter="hidden">
                <forward name="success" path="/LancerConsignesNonValidesAction.do" redirect="true"></forward><!--a modifier-->
                <forward name="erreur" path="/LancerConsignesNonValidesAction.do"></forward>
            </action>

    Et voici mon exception :
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    javax.servlet.ServletException: fr.edition.eni.action.ValidationSuppressionAction.default(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)


    cause mère

    java.lang.NoSuchMethodException: fr.edition.eni.action.ValidationSuppressionAction.default(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    java.lang.Class.getMethod(Class.java:1581)
    org.apache.struts.actions.DispatchAction.getMethod(DispatchAction.java:322)
    org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:262)
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)


    note La trace complète de la cause mère de cette erreur est disponible d


    Quelqu'un sait comment corriger mon pb.
    merci

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    java.lang.NoSuchMethodException: fr.edition.eni.action.ValidationSuppressionAction.default
    Comme tu as défini ceci dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:hidden property="hidden" value="default"/>
    il cherche une méthode qui s'appelle default dans la DispatchAction ValidationSuppressionAction.

    Donc, soit tu définis une méthode default, soit tu remplaces default par une méthode déjà définie dans ValidationSuppressionAction (remove ou validate).
    Modératrice Java - Struts, Servlets/JSP, ...

  6. #6
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    Salut,
    J'ai mis comme tu dis la valeur du value à une de mes méthodes. Je les mis à validate te du coup lorsque je souhaite supprimer ça ne marche pas.
    Il ne voit pas la méthode remove.

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Désolée, je pensais que ça pouvait fonctionner.
    Faut dire que je maîtrise mieux la LookupDispatchAction.

    Sinon, as-tu essayé de définir une méthode default ?
    Modératrice Java - Struts, Servlets/JSP, ...

  8. #8
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut

    Mon problème est enfin résolu grace à ce topic :
    http://www.developpez.net/forums/sho...ons+formulaire

    à vous tous pour vos réponses.

  9. #9
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Effectivement, j'avais même participé à cette discussion mais sans pour autant trouver la solution.
    Tu as rajouté une méthode unspecified pour corriger ton problème c'est ça ?
    Modératrice Java - Struts, Servlets/JSP, ...

  10. #10
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Points : 150
    Points
    150
    Par défaut
    non, j'avais une erreur dans mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       <script language="JavaScript">
     
        function setDispatch(event)
    	{
       		document.getElementById('dispatch').value = event;
       		document.getElementById('lots').submit();
    	}
        </script>
    et je ne mettais l'attribut styleId =lots dans le html:form.
    je n'est pas défini de méthode unspecified.

    En fait c'est bien que les gens mettent les solutions de leurs problèmes une fois que ces derniers résolus comme l'a fait SODTLSE.
    Merci encore une fois

  11. #11
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par gloglo
    En fait c'est bien que les gens mettent les solutions de leurs problèmes une fois que ces derniers résolus comme l'a fait SODTLSE.
    Merci encore une fois
    C'est pour ça que je te posais la question, afin que d'autres confrontés au même problème puisse le résoudre.
    Merci à toi d'avoir donné la solution.
    Modératrice Java - Struts, Servlets/JSP, ...

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

Discussions similaires

  1. [2.x] probleme formulaire imbrique
    Par rafleboss dans le forum Symfony
    Réponses: 2
    Dernier message: 18/11/2011, 09h36
  2. probleme formulaire
    Par serapha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/12/2005, 11h12
  3. probleme formulaire
    Par serapha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/12/2005, 20h19
  4. [MySQL] Probleme Formulaire [Dropdown]
    Par lemagicien dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2005, 10h27
  5. Problemes formulaires web
    Par mdma64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/08/2005, 10h09

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