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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    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 Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

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

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    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 Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    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 averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    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 Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    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 averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    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 averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    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 Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    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 averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    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;
          }
        }

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