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 :

Recuperer un formulaire rempli


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut Recuperer un formulaire rempli
    Salut,
    J'ai un formulaire qui comporte plusieurs champs et je veux permettre à l'utilisateur de pouvoir modifier ce qu'il a entré dans son formulaire meme après soumission ( De la meme manière que Editer de developpez).
    Ce formulaire me permet en fait d'entrer une instruction par exemple.
    Donc l'utilisateur choisi dans un menu deroulant l'instruction qu'il souhaite changer et la il a son formulaire qui apparait avec ce qu'il a deja entré et il peut ainsi modifier.
    j'ai fait une methode modifier dans mon Java bean :
    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
     public ActionForward modifierShift(ActionMapping mapping, Connection cnx)throws SQLException{
            PreparedStatement pstmt;
            try{
     
                System.out.println("Creation et execution de la requete pour la modification des shifts ");
                Statement st = cnx.createStatement();
                ResultSet rs = st.executeQuery("select from shift where date=\""+shiftModification+"\"");
                // On recupère le contenu des champs du shify séléctionné.
                auteurShift = rs.getString("auteur");
                contenuShift = rs.getString("contenu");
                 this.dateShift = rs.getDate("date");
     
                cnx.commit();
                return mapping.findForward("success");
            }catch(Exception e){
                cnx.rollback();
                return mapping.findForward("erreur");
            }finally{
                cnx.close();
            }
        }
    Sauf que la j'ai vraiment un formulaire qui apparait mais avec les champs vides car auteurShift = rs.getString("auteur");par exemple ne retourne rien du tout.

    Voici le contenu de ma page JSP dans laquelle je veux recuperer mon formulaire deja rempli :
    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
     <html:form action="ShiftModificationAction.do">
      <tr>
        <td>   
     <small style="font-weight: bold;"><span style="font-family: Arial;">
    <img style="width: 9px; height: 9px;"alt="" src="Images\untitled.bmp"> 
    <bean:message key="nom.pilote"/>  <br><br></span></small>&nbsp;&nbsp;
         <html:text property="auteurShift"></html:text>
         </td>
          </tr>     
           <tr>
        <td>
         <small style="font-weight: bold;"><span style="font-family: Arial;">
    <img style="width: 9px; height: 9px;"alt="" src="Images\untitled.bmp"> 
     <bean:message key="shift.entrerContenu"/>  <br><br></span></small><br>
        &nbsp;&nbsp;<html:textarea cols="50" rows="20" property="contenuShift"></html:textarea>
         </td>
         </tr>
         <td>
     
     
    <html:submit value="Enregistrer modifications" style="width: 100px; height: 20px;"></html:submit>                
     </td>
    </html:form>
    Merci

  2. #2
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    D'après ce que tu expliques ton problème viendrait du code récuperant les informations depuis la base.

    Est ce que lorsque tu exécutes ta rêquete indépendamment dans un requêteur, elle ramène des n-uplets?

    Aussi, ou sont déclaré des variables auteurShit et contenushift?

    Pour tester si l'affichage de ton formulaire est correct (indépendamment de l'accès à la base de données), assigne des valeurs à tes variables pour voir si tout se passe correctement.

    Aussi je ne pense pas qu'il y ai un grand intéret de faire un commit sur une lecture de données dans la base...

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Citation Envoyé par fabszn
    Hello,

    D'après ce que tu expliques ton problème viendrait du code récuperant les informations depuis la base.

    Est ce que lorsque tu exécutes ta rêquete indépendamment dans un requêteur, elle ramène des n-uplets?

    Aussi, ou sont déclaré des variables auteurShit et contenushift?
    ce sont les variables qui representent les champs de mon formulaire. Elles sont déclares dans la classe du bean du formulaire te dans mon javabean la ou j'ai defini la méthode modifier.

    Mon problème c'est de recuperer le formulaire rempli, de la meme manière lorsqu'on fait editer sur le message qu'on a ecrit sur developpez et on recupere alors ce que l'on a écrit

    Citation Envoyé par fabszn
    Aussi je ne pense pas qu'il y ai un grand intéret de faire un commit sur une lecture de données dans la base...
    En fait je suis en stage et c'est mon responsable qui veut ça et on ne discute pas les ordres de son chef

  4. #4
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Je suis bien d'accord avec toi! Le chef a toujours raison!

    Tu as pu tester ton formulaire et ta requête (comme décrit dans mon post précédent)?

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Je ne comprend pas ton problème.

    C'est un problème de conception simple.
    Quel est le code de ton Action (ou appelles-tu modifierShift())?

    Il faut que dans ton code, tu fasses la distinction entre l'arrivée sur la page et le retour de page (ton édit).
    Dans le premier cas, tu récupères ce qu'il y a en base, et dans le deuxieme cas, tu récupères directement ton formulaire se trouvant dans la session (ou request). Et enfin le submit qui la va pointer vers une autre action pour updater la base.

    Pour récupérer ton formulaire, il te suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TonForm form = (TonForm) _form;
    Struts se chargera automatique de récupérer les données que tu as renseignées.

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Citation Envoyé par yolepro
    Je ne comprend pas ton problème.

    C'est un problème de conception simple.
    Quel est le code de ton Action (ou appelles-tu modifierShift())?

    Il faut que dans ton code, tu fasses la distinction entre l'arrivée sur la page et le retour de page (ton édit).
    Dans le premier cas, tu récupères ce qu'il y a en base, et dans le deuxieme cas, tu récupères directement ton formulaire se trouvant dans la session (ou request). Et enfin le submit qui la va pointer vers une autre action pour updater la base..
    modifierShift je l'appelle dans une classe action ModificationShiftAction.java.
    Ce que je veux faire c'est l'arrivée sur la page c-a-d recuperation de ce qu'il y a dans la base.

    Mon probleme c'est lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ResultSet rs = st.executeQuery("select * from shift where date=\""+shiftSuppression+"\"" );
    auteurShift = rs.getString("auteur");
                    System.out.println("Valeur de auteur : " + auteurShift);
    Je ne recupere rien du tout car mon resultSet je pense est vide.

    Je sais que c'est un probleme de conception simple mais moi je suis encore un tout petit débutant donc ce n'est pas si évident que ça pour moi

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Ne te fait pas prier et montre nous le code de ton ModificationShiftAction.

    Merci

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    En relisant ton sujet je pense avoir compris.

    Tu n'arrives tout simplement pas a récupéré les données de la base pour les afficher dans ton formulaire.

    C'est bien ca?

    Bon déja, as-tu testé ta requete SQL pour voir si elle fonctionnait ?

    parce que "select from shift where date="..."" ca veut rien dire a la base.

  9. #9
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Voici le code de la méthode modifierShift :
    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
     public ActionForward modifierShift(ActionMapping mapping,Connection cnx)throws SQLException
        {
                try {
     
    		Statement st = cnx.createStatement();
     
    		ResultSet rs = st.executeQuery("select * from shift where date=\""+shiftmodification+"\"" );		
                    auteurShift = rs.getString("auteur");
                    System.out.println("Valeur de auteur : " + auteurShift);
    		rs.close();
    		st.close();
                    return mapping.findForward("success");
    		}
                    catch (SQLException e) {
    			System.out.println(e.getMessage());
                            return mapping.findForward("erreur");
    		}
        }
    et le code de 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
    public class ShiftModificationAction extends Action{
     
        /** Creates a new instance of ShiftModificationAction */
        public ShiftModificationAction() {
        }
     
         public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 
                   HttpServletResponse response)throws Exception{
                    ShiftForm monShiftForm = (ShiftForm) form;
                    DataSource ds = getDataSource(request, "enidb");
                    Connection cnx = ds.getConnection();
                    Shift monShift = new Shift();
                    monShift.setShiftSuppression(monShiftForm.getShiftSuppression());
                    return monShift.modifierShift(mapping,cnx);
     
       } 
    }
    J'ai l'exception suivante :
    Before start of result set

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Citation Envoyé par yolepro
    En relisant ton sujet je pense avoir compris.

    Tu n'arrives tout simplement pas a récupéré les données de la base pour les afficher dans ton formulaire.

    C'est bien ca?

    Bon déja, as-tu testé ta requete SQL pour voir si elle fonctionnait ?

    parce que "select from shift where date="..."" ca veut rien dire a la base.
    Oui mon probleme c'est effectivement que je n'arrive pas à recuperer les données de la base. J'ai corrigé en fait le select ....
    J'ai fait select * from ...
    Je sais d'après les traces que j'ai faites que le probleme est à cause de ces instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dateShift = rs.getDate("date");
    auteurShift = rs.getString("auteur");
    c'est ces instructiosn qui me font sortir l'exception : Before start of result set

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Le probleme provient surement du getDate...

    Si tu le mets en commentaire et que tu ne recupères que le String (es tu absolument sur du nom de ton champs retourné?) cela devrait marcher.

    Concernant le champs Date il faut le récupéré de maniere différente suivant :
    - le type de Base que tu utilises (Mysql, Oracle, SQLServer...),
    - comment tu l'as définie dans ta table (quel est son type exact? tu devrais le voir avec un viewer).

    Dans tous les cas fait une recherche sur le forum je suis a 99% sur que tu y trouveras la réponse.

  12. #12
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Oui je pensais la meme chose au début (c-a-d que c'était à cause du getdate) mais meme lorsque je commente l'instruction avec la date et que je laisse que celle avec getString ça me sort la meme erreur.
    Je vais essayer de reflechir sur le probleme. Merci

  13. #13
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    C'est bon j'ai réglé cette erreur. En fait le probleme c'était que je ne fesais pas rs.next().
    Maintenant je suis sur que je lit les informations de la base. Reste le probleme de les afficher dans le formulaire (Pour que je recupere un formulaire rempli).

  14. #14
    Expert confirmé

    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
    Par défaut
    A mon avis, ton select ne te renvoie aucune ligne.

    Et si tu rajoutes un test comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ResultSet rs = st.executeQuery("select * from shift where date=\""+shiftmodification+"\"" );
    if ( rs.next() )
    {
         auteurShift = rs.getString("auteur");
         System.out.println("Valeur de auteur : " + auteurShift);
    }
    la valeur de auteur s'affiche-t'elle dans la console ?

  15. #15
    Expert confirmé

    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
    Par défaut
    Ben, apparemment, je n'ai pas été assez rapide pour te répondre.

    As-tu mis les infos que tu récupères dans la base dans le scope pour les rendre accessible depuis la jsp ?

  16. #16
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Non, je n'est pas mis dans le scope . Je dois mettre quoi exactement dedans ??? Je pense que c'est ce qui me manque pour recuperer mon formulaire rempli.
    Pour l'instant je ne fais que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text property="auteurShift"></html:text>

  17. #17
    Expert confirmé

    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
    Par défaut
    Dans la méthode execute de l'Action qui s'exécute avant l'affichage du formulaire, tu peux coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TonForm tonForm = (TonForm) form ;
    tonForm.setAuteurShift(auteurShift) ;
    Et dans le mapping de cette Action, dans le struts-config.xml, il ne faut pas oublier de faire référence au form-bean via l'attribut name et de mettre validate à false.

  18. #18
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    à tous pour votre aide. Mon problème est résolu.
    Mon chef sera trop content. Je regle tous mes problèmes sans le souler et ceci grace à developpez.

  19. #19
    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
    Bientôt une petite fourmis indépendante

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/09/2006, 17h58
  2. [PostGre SQL] recuperer date non rempli
    Par claireenes dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/07/2006, 11h59
  3. Impression d'un formulaire rempli
    Par niavlys77 dans le forum Access
    Réponses: 3
    Dernier message: 29/06/2006, 15h52
  4. [C#] Custom Control : Recuperer valeur formulaire
    Par victorbru dans le forum ASP.NET
    Réponses: 22
    Dernier message: 21/04/2005, 10h02
  5. Recuperation de formulaire dans une fonction
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 23/06/2004, 16h04

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