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 1.3] Probleme recuperation formulaire


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut [Struts 1.3] Probleme recuperation formulaire
    Bonjour

    voici mon problème. J'ai une action (DisplayFooter qui est associée à une ActionForm appelée FooterForm) qui parse un fichier et qui remplit une collection d'objet qu'on affiche ensuite dans une jsp (footer.jsp)

    Jusque là pas de souci.
    Les informations affichées dans la JSP sont modifiables.

    Mon problème est que lorsque je soumet mes modifications(appelle de l'action UpdateFooterAction ) , elles ne sont pas recuperées dans mon ActionForm (FooterForm)

    Je recapitule la cinematique :
    DisplayFooterAction => footer.jsp => UpdateFooterAction

    la classe UpdateFooterAction appelle la méthode validate du FooterForm
    et quand je parse les infos dans la methode validate je n'ai que les anciennes valeurs des objets ListeRubriquesFooter récupérées dans la classe DisplayFooterAction .

    En revanche l'info rubriqueName est bien mise à jour avec la nouvelle saisie par l'utilisateur


    Voici un extrait du code

    Struts-config.xml :

    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
     
    //declaration du bean 
    ...
    <form-bean name="footerRubriquesForm" type="com.goom.backoffice.struts.form.cgufooter.FooterForm">
    </form-bean>
    ...
     
    //declaration des actions
    ....
     
    <action path="/displayfooter" name="footerRubriquesForm" scope="session" type="com.goom.backoffice.struts.action.cgufooter.DisplayFooterAction" validate="false">
             <forward name="DISPLAY_FOOTER" path="/jsp/cgufooter/footer.jsp" ></forward>
    </action>
     
    <action path="/updateFooter" name="footerRubriquesForm" scope="session" input="/jsp/cgufooter/footer.jsp" type="com.goom.backoffice.struts.action.cgufooter.UpdateFooterAction" validate="false">
             <forward name="UPDATE_FOOTER_SUCCESS" path="/jsp/cgufooter/footer.jsp" ></forward>
    </action>
     
    ...
    Mon Form(je n'ecrit que les autres proprietes qui peuvent poser probleme)
    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
     
     
    public class FooterForm extends ActionForm {
    private List<RubriqueFooter> rubriquesFooter = new ArrayList<RubriqueFooter>();
     
     
     public RubriqueFooter getRubriquesFooter(int i) {
     
     
            int listObjSize = rubriquesFooter.size();
            // check if object exists at specified index
            if ((i + 1) > listObjSize) {
                // add objects
                for (int j = listObjSize; j < i + 1; j++) {
                    RubriqueFooter beanObj = new RubriqueFooter();
                    rubriquesFooter.add(j, beanObj);
                }
            }
            // get and return object at this index
            return (RubriqueFooter) rubriquesFooter.get(i);
     
     
     
        }
     
        public void setRubriquesFooter(int i,RubriqueFooter element) {
            rubriquesFooter.set(i, element);
        }
     
        public List<RubriqueFooter> getListeRubriquesFooter() {
            return rubriquesFooter;
        }
     
        public void setListeRubriquesFooter(List<RubriqueFooter> rubriquesFooter) {
            this.rubriquesFooter = rubriquesFooter;
        }
     
      ....
    }
    Ma classe RubriqueFooter

    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
     
    public class RubriqueFooter {
     
        private String rubriqueName;
        private List<LienRubrique> liensRubrique = new ArrayList<LienRubrique>();
     
        public RubriqueFooter() {
        }
     
        public String getRubriqueName() {
            return rubriqueName;
        }
     
        public void setRubriqueName(String rubriqueName) {
            this.rubriqueName = rubriqueName;
        }
     
        public List<LienRubrique> getLiensRubrique() {
            return liensRubrique;
        }
     
        public void setLiensRubrique(List<LienRubrique> liensRubrique) {
            this.liensRubrique = liensRubrique;
        }
    La classe LiensRubrique ne contient que des elements simples

    JSP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       <nested:iterate property="listeRubriquesFooter"  name="footerRubriquesForm" >
                                        <ul style="float: left; display: inline;list-style-type: none;padding-left:29px;margin-left:0px;">
                                            <li style="width: 150px; display: inline;">
                                                <nested:text property="rubriqueName"  style="color:green"></nested:text>
                                            </li>
                                            <nested:iterate property="liensRubrique"  name="listeRubriquesFooter">
                                                <li>
                                                    <nested:text property="lienRubrique"  ></nested:text>
                                                 </li>
                                           </nested:iterate>
                                        </ul>
                                     </nested:iterate>
    merci d'avance

  2. #2
    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
    Avec des iterate imbriqués, tu aurais peut-être intérêt à référencer la propriété indexée dans un tag html:text comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <nested:iterate property="listeRubriquesFooter" name="footerRubriquesForm" indexId="idRubrique">
       <ul style="float: left; display: inline;list-style-type: none;padding-left:29px;margin-left:0px;">
         <li style="width: 150px; display: inline;">
               <nested:text property="rubriqueName" style="color:green"></nested:text>
         </li>
               <nested:iterate property="liensRubrique"  name="listeRubriquesFooter" indexId="idLien">
                   <li>
                       <html:text property="listeRubriquesFooter[${idRubrique}].liensRubrique[${idLien}].lienRubrique"></html:text>
                   </li>
              </nested:iterate>
       </ul>
    </nested:iterate>

  3. #3
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Tout d'abord merci de t'être penchée sur mon problème

    J'explorais cette piste car seule l'élément rubriqueName est modifiée
    il doit y avoir un problème d'indexation

    en rajoutant les indexId j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.servlet.jsp.JspException: No getter method for property: "liensRubrique[0].listeRubriquesFooter[0].liensRubrique[0].lienRubrique" of bean: "listeRubriquesFooter"....

  4. #4
    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
    N'aurais-tu pas utilisé le tag nested:text au lieu du tag html:text ?
    Comme on construit manuellement la propriété indexée, il faut utiliser le tag html:text et non nested:text.

  5. #5
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Si effectivement
    Je teste et je te redis

  6. #6
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    effectivement c'est bien ça


    merci pour ton aide

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

Discussions similaires

  1. Probleme recuperation formulaire
    Par EIN-LESER dans le forum Langage
    Réponses: 1
    Dernier message: 02/05/2012, 17h10
  2. Réponses: 1
    Dernier message: 19/07/2007, 22h19
  3. [Struts]Appels successifs à un même formulaire
    Par pimousse76 dans le forum Struts 1
    Réponses: 2
    Dernier message: 24/11/2004, 13h13
  4. Probleme de formulaire d'upload
    Par Oberown dans le forum ASP
    Réponses: 5
    Dernier message: 26/10/2004, 14h00
  5. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    Réponses: 7
    Dernier message: 15/06/2004, 09h39

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