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 :

Multibox - comment ça marche ?


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut Multibox - comment ça marche ?
    Bonjour a tous

    Je sais que ce que je vais demander a déja été posté mais j'arrive pas a comprendre comment ca marche

    En fait je dois faire un mini site web en java avec struts qui ajoute, supprime, modifie des boissons, et depuis la liste des boissons, je doit pouvoir en supprimer plusieurs d'un coup

    J'ai compris qu'il fallait utiliser des multibox (pour pouvoir récupérer la valeur de chacune) mais c'est ma DeleteForm et ma DeleteAction que j ne vois pas du tout comment construire

    Voici ce que j'ai testé (mais ca ne marche pas)

    la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <html:form action="/deleteBoisson">
                    <logic:iterate name="boissonList" id="b">
                        <tr>
                            <td><html:multibox property="selectionBoisson" value="${b.name}"/></td>
                            <td><bean:write name="b" property="name" /></td>
                            <td><bean:write name="b" property="price" /> €</td>
                            <td><bean:write name="b" property="description" /></td>
                            <td><html:link href="updateBoisson.do?name=${b.name}" >Modifier</html:link></td>
                        </tr>
                    </logic:iterate>
                    <html:submit value="Supprimer les éléments sélectionnés" />
                </html:form>

    Ensuite ma DeleteForm :
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package com.labosun.struts.form;
     
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionMapping;
     
    /**
     *
     * @author Anthony
     */
    public class DeleteBoissonForm extends ActionForm{
        private String[] selectionBoisson;
     
        public void reset (ActionMapping mapping, HttpServletRequest request){
            this.selectionBoisson = new String[25];
        }
     
        public String[] getSelectionBoisson() {
            return selectionBoisson;
        }
     
        public void setSelectionBoisson(String[] selectionBoisson) {
            this.selectionBoisson = selectionBoisson;
        }
    }
    Et ma DeleteAction :
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package com.labosun.struts.actions;
     
    import com.labosun.struts.dao.BoissonDAO;
    import com.labosun.struts.entities.Boisson;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    /**
     *
     * @author Anthony
     */
    public class DeleteBoissonAction extends Action{
     
        @Override
        public ActionForward execute(ActionMapping mapping, ActionForm arg1, HttpServletRequest request, HttpServletResponse arg3) throws Exception {
            Boisson boisson = BoissonDAO.getInstance().findBoisson(request.getParameter("name"));
            if (boisson != null){
                BoissonDAO.getInstance().removeBoisson(boisson);
            }
     
            arg3.sendRedirect("listBoisson.do");
     
            return null;
        }
    }

    Si quelqu'un pouvais m'éclairer

    Je sais que cela a déja été demandé mais je ne comprend pas du tout comment cela marche (je suis débutant en java, on a seulemtn eu 3jours de cours avant d'avoir ce projet a faire et je n'en avait jamais fait avant ... )


    Merci d'avance a tous ceux qui m'aideront

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    dans ton action DeleteAction, tu dois parcourir les boissons que tu veux supprimer en utilisant le formulaire associé:
    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 class DeleteBoissonAction extends Action{
     
        @Override
        public ActionForward execute(ActionMapping mapping, ActionForm arg1, HttpServletRequest request, HttpServletResponse arg3) throws Exception {
           DeleteForm deleteForm = (DeleteForm) arg1;
           Boisson boisson;
           <Interface de ton BoissonDao> boissonDAO = BoissonDAO.getInstance();
           for (int i =0; i < deleteForm.selectionBoisson.length; i++) {
               boisson = boissonDAO.findBoisson(deleteForm.selectionBoisson[i]);
                 if (boisson != null){
                    boissonDAO.removeBoisson(boisson);
                 }
           }
           arg3.sendRedirect("listBoisson.do");
     
           return null;
        }
    }

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    petite modif que j'ai fai et qui marche un ti peu mieu :
    j'ai remplacé dans mon DeleteBoissonForm la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Boisson boisson = BoissonDAO.getInstance().findBoisson(request.getParameter("name"));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Boisson boisson = BoissonDAO.getInstance().findBoisson(request.getParameter("selectionBoisson"));
    En fait j'ai remplacé le "name" mar le "selectionBoisson" que j'avait comme property dans ma multibox

    En faisant comme cela, j'arrive a supprimer le 1er élément coché, mais j'arrive pas a faire la boucle qui permettrai de supprimer les autres (dans mon DeleteActionForm donc)

    Si quelqu'un avait une idée ...

    Merci d'avance

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    regarde juste au-dessus ;-)

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    je suis en train d'essayer ta boucle mais j'ai un ou deux trucs que je voudrais te demander

    dans les ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           Boisson boisson;
           <Interface de ton BoissonDao> boissonDAO = BoissonDAO.getInstance();
    la première ligne sert bien a créer un nouvel objet de type Boisson afin de le supprimer dans ma liste c'est bien ca?

    et pour la 2e, qu'est ce que tu appelles <interface de ton BoissonDAO>?
    et ne serait-il pas plus judicieux de nomer la variable autrement que boissonDAO afin d'éviter les confusions lors de la compilation ou cela ne chance-t-il rien?

    Merci de ta réponse

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    Citation Envoyé par Sh4dow49 Voir le message
    la première ligne sert bien a créer un nouvel objet de type Boisson afin de le supprimer dans ma liste c'est bien ca?
    oui, il vaut mieux déclarer l'objet une fois en dehors de la boucle que de le déclarer à chaque fois dans la boucle.

    Citation Envoyé par Sh4dow49 Voir le message
    et pour la 2e, qu'est ce que tu appelles <interface de ton BoissonDAO>?
    et ne serait-il pas plus judicieux de nomer la variable autrement que boissonDAO afin d'éviter les confusions lors de la compilation ou cela ne chance-t-il rien?
    à la place de <interface de ton BoissonDAO>, il faut que tu mettes le nom de la class correspondant à l'interface de ton DAO...
    après, tu nommes cette instance de class du nom que tu veux.... "monInterface", "maClass", "monObjet", "toto".... c'est toi qui décides mais il vaut mieux choisir un nom qui soit lisible et compréhensible!

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

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 21h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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