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 :

[Struts]Création dynamique de checkbox


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut [Resolu][Struts]Création dynamique de checkbox
    Salut à vous

    J'ai un léger soucis au niveau de mon application struts et j'espère qu'il y a une solution possible sinon je suis mal!

    J'aimerais générer dynamiquement des checkbox en fonction du nombre d'objets recus de la base de données. Ce qui permettrait de faire un tableau dans ma page JSP et de supprimer ces valeurs de la base de données en les selectionnant puis en cliquant sur le bouton submit. J'espère avoir été relativement clair

    Y a-t-il un moyen de faire ca??

    Merci d'avance!!!

  2. #2
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    tu peux le faire en parcourant ton résultat a l'aide d'une boucle.
    va voir de ce coté : struts-logic et notament le tag iterate

    Bonne continuation

  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    merci je me penche là dessus

  4. #4
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Mobius, après avoir lu la doc dont tu parles et avoir fait de multiples recherches, essais, j'ai toujours pas réussi Je me sens vraiment naze, voici mon code si quelqu'un peut m'aider.

    La méthode SwCallId.AGetInfoCart appele un service web qui récupère des infos dans la base de données. Jusqu'ici tout va bien, les données sont présentes dans mon ArrayList tableau qui est de ce type:

    tableau[0].Id_Souche
    tableau[0].quantite
    tableau[0].date

    tableau[1].Id_Souche
    tableau[1].quantite
    tableau[1].date

    etc...

    J'aimerais pouvoir créer dynamiquement une checkbox puis afficher ensuite les valeurs "Id_Souche", "quantite", "date" et recommencer ainsi de suite jusqu'a que la valeur "i" de tableau[i] soit atteinte.

    J'ai pour l'instant essayer sans checkbox mais avec des bean sans succès.
    Que dois-je faire pour que celà fonctionne avec les checkboxes, je suis perdu... Merci beaucoup et désolé si la réponse est évidente


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%                
                    ArrayList tableau = new ArrayList();
                    tableau = SwCallId.AGetInfoCart(user,pass,base);
    %>
     
    <logic:iterate id="tableau" name="tab5">
      <bean:write name="tableau" property="Id_Souche"/>
      <bean:write name="tableau" property="quantite"/>
      <bean:write name="tableau" property="date"/>
    </logic:iterate>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
     
    Une erreur s'est produite à la ligne: 85 dans le fichier jsp: /showCart.jsp
    Erreur de servlet générée:
    Duplicate local variable tableau
     
    Une erreur s'est produite à la ligne: 85 dans le fichier jsp: /showCart.jsp
    Erreur de servlet générée:
    Type mismatch: cannot convert from Object to ArrayList
     
    Erreur de servlet générée: Type mismatch: cannot convert from Object to ArrayList

  5. #5
    Membre Expert
    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
    Par défaut
    Bonjour,

    Il y a plus de trois ans que je ne fais plus de JSP docn prend mon code aved des pincettes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <%
        ArrayList tableau = SwCallId.AGetInfoCart(user,pass,base);
    %>
     
    <logic:iterate id="element" name="tableau">
      <bean:write name="element" property="Id_Souche"/>
      <bean:write name="element" property="quantite"/>
      <bean:write name="element" property="date"/>
    </logic:iterate>

  6. #6
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Merci pour ta réponse Jowo

    J'ai essayé ton code et voilà l'erreur à la ligne 84 qui est le début de la balise <logic:iterate> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cause mère 
    javax.servlet.ServletException: Cannot find bean tableau in any scope

  7. #7
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    Il faut que tu ajoutes ta variable tableau en session

  8. #8
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    je ne maitrise pas trop non plus ce genre de structure mais j'aurai plus ecris un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%
    ArrayList tableau = new ArrayList();
    tableau = SwCallId.AGetInfoCart(user,pass,base);
    %>
     
    <logic:iterate id="elem" name="tableau">
    <bean:write name="elem" property="Id_Souche"/>
    <bean:write name="elem" property="quantite"/>
    <bean:write name="elem" property="date"/>
    </logic:iterate>

  9. #9
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Bonjour,

    1) ne peux tu pas mettre ta liste dans la request (au niveau de ton action) ?
    2) regarde du côté de l'attribut "indexed" pour le tag html:checkbox

    Bon courage
    Eric

  10. #10
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Citation Envoyé par _beber85
    Il faut que tu ajoutes ta variable tableau en session
    Bien vu beber!

    J'ai rajouté cette ligne de code et ca fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       session.setAttribute("tableau", tableau);
    Je vais m'occuper des checkbox maintenant merci

  11. #11
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Je trouve ca étonnant que l'on soit obligé de passer par la session pour utiliser ce tag!
    C'est vrai que je l'avais vu utilisé uniquement pour des données en session mais je pensais qu'on pouvais l'utiliser d'une facon plus general !

  12. #12
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Citation Envoyé par Mobius
    Je trouve ca étonnant que l'on soit obligé de passer par la session pour utiliser ce tag!
    C'est vrai que je l'avais vu utilisé uniquement pour des données en session mais je pensais qu'on pouvais l'utiliser d'une facon plus general !
    Et pourtant...

    Pas plus compliquer pour les checkbox, il suffit de rajouter cette ligne de commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:checkbox name="element" property="Id_Souche"></html:checkbox>
    Encore merci

  13. #13
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Bonjour

    Il y a quand même un truc qui me taraude. La création des checkbox fonctionne correctement. Maintenant comment fait-on pour récupérer les valeures de ces dernières?

    Il n'y a même pas de getter and setter crées...

    Merci de m'illuminer

  14. #14
    Membre averti
    Inscrit en
    Février 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 48
    Par défaut
    J'ai exactement le même probleme et je me pose exactement la meme question! Si quelqu'un a la réponse il fera au moin 2 heureux!

  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
    Citation Envoyé par Mobius
    Je trouve ca étonnant que l'on soit obligé de passer par la session pour utiliser ce tag!
    C'est vrai que je l'avais vu utilisé uniquement pour des données en session mais je pensais qu'on pouvais l'utiliser d'une facon plus general !
    On n'est pas du tout obligé de passer par le scope session.

    Si le scope n'est pas spécifié dans le tag logic:iterate via l'attribut scope, il va chercher le bean dans n'importe quel scope.

    Il est donc dommage de stocker l'ArrayList en session si celle-ci n'est utilisée que dans la page.

    Normalement ceci doit suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pageContext.setAttribute("tableau",tableau);

  16. #16
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Citation Envoyé par Houbbba
    J'ai exactement le même probleme et je me pose exactement la meme question! Si quelqu'un a la réponse il fera au moin 2 heureux!

  17. #17
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Citation Envoyé par joy5
    Bonjour

    Il y a quand même un truc qui me taraude. La création des checkbox fonctionne correctement. Maintenant comment fait-on pour récupérer les valeures de ces dernières?

    Il n'y a même pas de getter and setter crées...

    Merci de m'illuminer
    j'avais pas vu la question

    regarde du coté des ActionForm utilisé par les Action struts
    Il faut que tu implementes des ActionForm avec les bon getter et setter et ensuite que tu les déclare dans ton struts-config dans la balise action (parametre name)

  18. #18
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Citation Envoyé par Mobius
    j'avais pas vu la question

    regarde du coté des ActionForm utilisé par les Action struts
    Il faut que tu implementes des ActionForm avec les bon getter et setter et ensuite que tu les déclare dans ton struts-config dans la balise action (parametre name)
    Pas de problème, merci à toi de répondre surtout

    Bon par contre c'est vrai que ca m'aide pas trop là Comment je fais pour les getter and setter. Je ne peux pas utiliser le logic:iterate pour générer automatiquement dans le Form...

    Voici mon struts-config.xml, je suis aussi en train d'implémenter un DispatchAction. Tu peux m'aiguiller stp, il faut écrire un (parameter name="..") ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <action
          attribute="showCartForm"
          input="/showCart.jsp"
          name="showCartForm"
          path="/showCart"
          scope="request"
          type="com.InraLgmpa.struts.action.ShowCartAction"
          parameter="hidden">
          <forward name="oui" path="/showCart.jsp" />
        </action>
    Merci

  19. #19
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    La classe correspondant a ton formulaire doit ressembler a quelque chose du genre. En fait tu recupere tous tes checkbox sous forme d'une liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class ShowCartForm extends ActionForm
    {
       private String[] Id_Souche = null;
     
       public String[] getId_Souche()
       {
          return Id_Souche;
       }
     
       public void setId_Souche(String[] Id_Souche)
       {
          this.Id_Souche = Id_Souche;
       }
    }

  20. #20
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 57
    Par défaut
    Citation Envoyé par Mobius
    La classe correspondant a ton formulaire doit ressembler a quelque chose du genre. En fait tu recupere tous tes checkbox sous forme d'une liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class ShowCartForm extends ActionForm
    {
       private String[] Id_Souche = null;
     
       public String[] getId_Souche()
       {
          return Id_Souche;
       }
     
       public void setId_Souche(String[] Id_Souche)
       {
          this.Id_Souche = Id_Souche;
       }
    }

    Merci de ta réponse Mobius ne me dis pas que c'est si simple Malheureusement je ne peux pas testé car j'ai un léger soucis au niveau de ma DispatchAction. "not resolved as a type" quand j'extend de ma class, c'est vraiment étrange j'ai pourtant struts 1.1 qui intègre ces dispatchAction...
    Je te tiens au courant lundi, merci encore et passe un bon weekend

Discussions similaires

  1. [C#] Création dynamique de checkbox
    Par Choumy dans le forum Windows Forms
    Réponses: 12
    Dernier message: 24/08/2007, 13h31
  2. [struts] liste dynamique, aide sur création Form
    Par chouchou93 dans le forum Struts 1
    Réponses: 3
    Dernier message: 01/12/2006, 16h45
  3. [C#] Création dynamique checkbox
    Par diaboloche dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/02/2006, 11h44
  4. [C#] Création dynamique de checkbox
    Par nightsdarkangel dans le forum Windows Forms
    Réponses: 18
    Dernier message: 16/05/2005, 18h00

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