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 :

Transfert d'une collection vers une autre dans la jsp


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Transfert d'une collection vers une autre dans la jsp
    Bonjour, je suis sur un proget struts et j'ai une page .jsp qui affiche 2 <select> qui sont chaqu'un alimenté par une des collection de mon form bean.J'aimerai pouvoir ajouter 2 bouton permettant de passer l'élément séléctionneé d'une le <select> et que le transfere d'une collection à l'autre se fasse en même temps:

    Voici 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
    
    
      <html:select size="5" property="listeDesAgentsDuGroupe">
                      <logic:iterate id="listeDesAgentsDuGroupe" name="GroupeFormBean" property="listeDesAgentsDuGroupe">
                        <bean:define id="idAgent" name="listeDesAgentsDuGroupe" property="idAgent"/>
                        <bean:define id="nmAgent" name="listeDesAgentsDuGroupe" property="nmAgent"/>
                        <bean:define id="prnAgent" name="listeDesAgentsDuGroupe" property="prnAgent"/>
                        <html:option value="<%=idAgent%>">
                          <%= nmAgent%>-
                          <%= prnAgent%>
                        </html:option>
                      </logic:iterate>
                    </html:select>
    
    ici je veux placer les 2 boutons qui permettrons le transfere de l'element séléctionné d'une liste à l'autre
    
     <html:select size="5" property="idGroupe" name="GroupeFormBean">
                      <logic:iterate id="listeDesAgents" name="GroupeFormBean" property="listeDesAgents">
                        <bean:define id="idAgent1" name="listeDesAgents" property="idAgent"/>
                        <bean:define id="nmAgent1" name="listeDesAgents" property="nmAgent"/>
                        <bean:define id="prnAgent1" name="listeDesAgents" property="prnAgent"/>
                        <html:option value="<%=idAgent1%>">
                          <%= nmAgent1%>-
                          <%= prnAgent1%>
                        </html:option>
                      </logic:iterate>
                    </html:select>

    merci

  2. #2
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    avec le tag layout:swap

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    et ca marchge cment layout:swap ????
    pk j ai troiuvé une page de doc mais c'est pas ca qui est ca!!!!

    http://struts.application-servers.co...ollection.html

    en plus j ai pas le plug in layout, jsens que ca va être la merde à installer!
    alors s 'il n'y a pas d'autre solution, jvai demvoir la mettre en oeuvre mais s'il y à une autre methode que le layout.swap je suis également preneur!

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu peux l'ecrire en javascript, et une fois effectuee tous les changements d'une liste a l'autre, tu fais un submit

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    ben je crois que c'est deja ce que je fait.voici la declaration d'un des <select>:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      <html:select size="5" property="listeDesAgentsDuGroupe">
                      <logic:iterate id="listeDesAgentsDuGroupe" name="GroupeFormBean" property="listeDesAgentsDuGroupe">
                        <bean:define id="idAgent" name="listeDesAgentsDuGroupe" property="idAgent"/>
                        <bean:define id="nmAgent" name="listeDesAgentsDuGroupe" property="nmAgent"/>
                        <bean:define id="prnAgent" name="listeDesAgentsDuGroupe" property="prnAgent"/>
                        <html:option value="<%=idAgent%>">
                          <%= nmAgent%>-
                          <%= prnAgent%>
                        </html:option>
                      </logic:iterate>
                    </html:select>
    la propriété listeDesAgentsDuGroupe correspond au nom de ma collection dans mon form bean! La mes 2 listes se remplissent correctement, puis je séléctionne un de mes élément de ma liste 1 puis je click sur un bouton qui execute cette fonction javascript:

    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
     
     function AddElementFromTo()
              {
                var laListeDesAgentsDuGroupe = document.getElementById("listeDesAgentsDuGroupe");
                var laListeDesAgent = document.getElementById("listeDesAgents");
                var x = 0;
                while (	x < laListeDesAgentsDuGroupe.length )
                {
                  var opt = laListeDesAgentsDuGroupe.options[x];
                  if (opt.selected)
                  {
                    var tac = laListeDesAgent.options;
                    laListeDesAgent.options[laListeDesAgent.options.length] = new Option(opt.text, opt.value, 0, 0);
                    laListeDesAgentsDuGroupe.remove(x);
                  }
                  else
                  x++;
                }
              }
    A partir de la, l'element selectionner s'est correctement transfere d'un <select> à l'autre. Puis apres je clique sur mon submit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:submit styleClass="bouton" onclick="<%=enregistrer%>">
                  <bean:message key="saisie.valider"/>
                </html:submit>
    qui me renvoie vers mon saveGroupe.do dans lequel je recupere mon formbean et lorsque je regarde le contenu des 2 collections (listeDesAgentsDuGroupe, listeDesAgents) et bien à changer!!! mes 2 collections contiennent les memes élément qu'au depart!!!
    QUE FAIRE!!!!!

  6. #6
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    J'ai deja realise ca, et ce que je faisais, n'etait vraiment oriente struts, ca ressemblait a ca:

    en javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function sauver(){
    	maListe=document.getElementById('liste');
    	var liste="";
    	for (i=0;i<maListe.length;i++){
    		liste=liste+ maListe.options[i].value + ";";
    	}
    //je sauve dans un champ hidden
    	document.forms[0].listeHidden.value=lista;
    //et j'execute le submit
    	document.forms[0].submit();
    }

    Cote java pour recuperer les valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String listeRecup=request.getParameter("listeHidden");
    String[] strListe=listeRecup.split(";");
    //et avec ca tu fais le traitement que tu veux

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    ca casi ce que j'avais eu l'idée de vaire avant votre reponse ms lorsque je fait le submit, il me renvoie un message d'erreur avant meme de commencer a executer le .do.???

    java.lang.IllegalArgumentException: type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    voila ma fonction javascript:

    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
     <SCRIPT>
      function modifMembre(formul, elem, typeAction)
      {
        formul.elements[elem].value=typeAction;
        alert("definition de formulaire.typeAction");
        var laListe ="";
        if(typeAction == "ajouterMembre")
        {
        laListe = document.getElementById("listeDesAgents");
        alert("liste traité : listeDesAgents");
        }
        else if (typeAction = "retirerMembre")
        {
        laListe = document.getElementById("listeDesAgentsDuGroupe");
        alert("liste traité : listeDesAgentsDuGroupe");
        }
         var x = 0;
                alert("bientot debut du while : recheche du select");
                while (	x < laListe.length )
                {
                  var opt = laListe.options[x];
                  alert("opt déclarer ="+ opt.value);
                  if (opt.selected)
                  {
                  alert("opt selectionné trouvé");
                  alert("formul.elements[agentChoisi]"+ formul.elements["agentChoisi"]);
                  formul.elements["agentChoisi"].value = opt.value;
                  alert("agent choisie = "+ opt.value);
                  alert("just avant le submit");
                  formul.submit();
                  }
                  else
                  x++;
                }
      }
    </SCRIPT>
    et donc kan je modifie que ce <hidden> : formul.elements[elem].value=typeAction; ca passe nikel, mais des que je mecide de m'oquper du deuxieme <hidden> --->>> marche plus (erreur juste en hauts) pourtant il passe bien dans toute ma foçnction javascript qui joue tres bien son roel

  9. #9
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par nsdcrew

    java.lang.IllegalArgumentException: type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Voyons voir ton code java et ton code jsp ...

    Ah sinon as-tu une methode validate dans ton Form ? Car ca peut passer par la avant d'arriver a l'action.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    ok
    PAGE JPS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <% String ajouterMembre = "modifMembre(this.form,'" + hidAction + "','ajouterMembre')";
      String retirerMembre = "modifMembre(this.form,'" + hidAction + "','retirerMembre')";
    %>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
             <html:submit styleClass="bouton" onclick="<%=ajouterMembre%>">
                        <bean:message key="saisie.groupe.ajouterMembre"/>
                      </html:submit>
    PAGE JAVA save.do

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
     
      {
        Connection connection = null ;
        Logger log = null;
        try
        {
          log = log.getLogger("Pegase ==> SaveGroupeAction");
          log.debug("Pegase ==> SaveGroupeAction");
     
          connection = Database.getInstance().getConnection(false);
          //récup du formbean
         GroupeFormBean formbean = (GroupeFormBean)form;
          String actionTyp = "error";
     
          PortletRenderRequest pReq = (PortletRenderRequest)request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
          if (pReq == null)
          {
            actionTyp = request.getParameter("actionType");
     
          }
          else
          {
           actionTyp = pReq.getQualifiedParameter("actionType");
          }
          formbean.setActionType(actionTyp);
     
          if (formbean.getActionType().equals("Annuler"))
          {
            log.debug("actionType="+formbean.getActionType());
          }
     
          if (formbean.getActionType().equals("Enregistrer"))
          {
            log.debug("actionType="+formbean.getActionType());
            if (formbean.getIdGroupe()>0)
            {//modifier le site et son adresse
              Magetgroupe unMagetGroupe = new Magetgroupe();
              unMagetGroupe.setIdGroupe(formbean.getIdGroupe());
              unMagetGroupe.setLbGroupe(formbean.getLbGroupe());
     
              BusinessServices.getInstance().updateMagetgroupe(connection,unMagetGroupe);
     
            }
            else
            {
              //créer un nouveau groupe
     
              Magetgroupe unMagetgroupe = new Magetgroupe();
              unMagetgroupe = BusinessServices.getInstance().createMagetgroupe(connection,formbean.getLbGroupe(), formbean.getIdGroupe());
     
            }
     
          }
          if (formbean.getActionType().equals("Supprimer"))
          {
            log.debug("actionType="+formbean.getActionType());
            //supprimer le point d'accueil
            BusinessServices.getInstance().deleteMagetGroupe(connection,formbean.getIdGroupe());
     
        }
     
          if (formbean.getActionType().equals("ajouterMembre"))
          {
         GroupeFormBean formbean2 = formbean;
          }
     
              if (formbean.getActionType().equals("retirerMembre"))
          {
         GroupeFormBean formbean3 = formbean;
          }
        }

  11. #11
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Utilise plutot un bouton a la place d'un submit car l'evenement onclick sur un submit declenche deux actions :
    1 le submit de ton formulaire
    2 l'action que tu as precisé dans ton onclick="..."

    etceci pas toujours dans l'ordre que tu souhaites

    donc fais plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:button styleClass="bouton" value="<bean:message key="saisie.groupe.ajouterMembre"/>" onclick="tafonction_js()"/>

Discussions similaires

  1. Réponses: 8
    Dernier message: 22/04/2014, 09h41
  2. Déplacer une image d'une feuille vers une autre dans un fichier Excel
    Par helenaide dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 14h27
  3. Réponses: 4
    Dernier message: 04/04/2011, 11h46
  4. Réponses: 1
    Dernier message: 06/01/2010, 08h55
  5. Transfert d'un objet d'une base vers une autre
    Par Arola78 dans le forum Access
    Réponses: 2
    Dernier message: 02/10/2006, 16h34

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