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

Servlets/JSP Java Discussion :

Boutons sur chaque ligne d'un tableau.


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut Boutons sur chaque ligne d'un tableau.
    Bonjour à tous,

    J'aimerais savoir s'il est possible et dans le cas échéant comment je dois m'y prendre pour afficher un bouton sur chaque ligne d'un tableau.

    En fait, j'ai créé un projet en Java qui me permet de récupérer des informations dans une base de données. J'affiche ces informations sous forme de tableau HTML via un Servlet.

    Pour chaque ligne j'aimerais ajouter un bouton "Détails" qui me permettrait d’exécuter une nouvelle requête avec des informations plus détaillées sur la ligne sélectionnée.

    Je ne sais si c'est très clair :S

    Merci d'avance pour vos réponses.

  2. #2
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut

  3. #3
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    comment construis-tu ton tableau ?
    Avec une librairie ?
    A la main avec une boucle ?

    Dans les deux cas, dans ta JSP, tu peux ajouter un bouton style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" onclick="taFonctionJSQuiAppelleUneMethode('<idObjet>')" />
    Et dans ton JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function taFonctionJSQuiAppelleUneMethode(id) {
    document.forms["myform"].action="tonAction?id="+id;
    document.forms["tonForm"].submit();
    }
    Enfin, dans ta nouvelle méthode tu récupère l'id pour récupérer toutes les informations en base.

  4. #4
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut
    Merci, je vais essayer ça !

  5. #5
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut
    Alors, je parviens désormais à construire mon tableau avec mes boutons, mais je ne parviens pas à appeler ma procédure.

    Je construit mon tableau à partir d'une boucle directement dans mon servlet (je n'utilise pas de JSP - c'est peut-être ça le problème) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    out.println( "<P ALIGN='center'><TABLE BORDER=1>" );
    out.println( "<TR><TH>Colonne1</TH><TH>Colonne2</TH><TH>Colonne3</TH><TH></TH></TR>" );
     
    for( int i=0 ; i < NumeroApplication.size() ; i++ ) {
    	out.println( "<TR><TD>" + NumeroApplication.get(i) + "</TD>" +
    		"<TD>" + NomApplication.get(i) + "</TD>" +
    		"<TD>" + EnvApplication.get(i) + "</TD>" +
    		"<TD>" + "<input type=\"button\" value=\"Voir le détail\" onclick=\"Test('AAA')\" />" + "</TD>" + "</TR>" );
    }
     
    out.println("</TABLE></P>");
    J'ai déclaré ma procédure dans la même class :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void Test( String pMonParametre ) { 
    javax.swing.JOptionPane.showMessageDialog( null, pMonParametre ); 
    }

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    Attention à ne pas tout confondre... onClick va appeler la fonction Javascript 'Test' se trouvant côté client.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut
    Ah OK...

    Du coup, comment dois-je procéder pour créer un bouton qui appel une fonction coté serveur ?

  8. #8
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    cf mon premier post.
    Tu créés ta fonction javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function Test(id) {
    ...
    }
    A l'intérieur tu appelles ta servlet avec en paramètre l'id (?id=<valeur>).
    Tu récupère l'id dans ta servlet avec un request.getParameter("id");

  9. #9
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut
    Donc, j'ai suivi vos instructions.

    1.Ma Servlet appel ma JSP.

    2. Ma JSP construit mon tableau (avec les boutons) à partir des informations fournies par ma Servlet.

    3. Les boutons de mon tableau appellent une fonction JavaScript de ma JSP.

    Jusque là, tout va bien... par contre, je ne comprends pas et je ne parviens pas à retourner dans ma Servlet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.forms["myform"].action="tonAction?id="+id;
    document.forms["tonForm"].submit();

  10. #10
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    Salut.

    Pré-requis :
    1. As-tu créé la servlet qui servira au traitement ?
    2. As - tu référencé la servlet qui sera appelée ? (web.xml)
    => Je ferai référence à son url avec <url> (url-pattern dans web.xml)
    3. As - tu bien les balises form dans ta JSP ? (<form action="..." name="...">)
    => Je ferai référence au nom du formulaire (name) avec <nomForm>

    Code :
    dans ton JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function Test(id) {
          document.forms["<nomForm>"].action="<url>?id="+id; 
          document.forms["<nomForm>"].submit();
    }

  11. #11
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut


    J'essayais d'appeler une fonction de ma Servlet principale...

    En appelant une nouvelle dédiée, ça fonctionne effectivement.

    Du coup, ça veut dire qu'il faut créer une Servlet par action (formulaire) ?
    En gros, si je souhaite naviguer dans 3 pages JSP, je dois avoir 3 Servlets ? C'est bien ça ?

  12. #12
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    En tout cas c'est plus propre.

    Tu t'y retrouveras plus facilement et ce sera plus facile à entretenir
    N'oublies pas que lorsque tu appelles une servlet, tu appelles la méthode GET ou POST ... tu ne peux pas appeler une méthode de ta servlet en direct.
    N'oublies pas le tag

  13. #13
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 91
    Points : 54
    Points
    54
    Par défaut
    Merci florentB, c'est beaucoup plus clair pour moi maintenant

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

Discussions similaires

  1. Créer un lien sur chaque ligne d'un tableau
    Par bza88 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/12/2013, 16h45
  2. Ajout d'un bouton sur chaque ligne
    Par Victor.ZENGA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2009, 10h19
  3. Réponses: 5
    Dernier message: 28/07/2006, 08h16
  4. Réponses: 6
    Dernier message: 23/05/2006, 19h35
  5. trait en dessous de chaque ligne d'un tableau
    Par auduma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 14/04/2005, 13h51

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