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 :

<logic:iterate> et tableau a double entrée


Sujet :

Struts 1 Java

  1. #21
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par Onimi Voir le message
    D'ailleurs dans la console, j'ai a chaque fois la même valeur qui s'affiche alors que je devrais en avoir des différentes.
    J'ai vérifier en debug et au moment ou je rentre dans mon action, le formulaire est déjà mal renseigné.. pour chaque éléments suggestions j'ai toujours la même valeur.
    Franchement, le résultat que tu obtiens n'est pas logique.
    Quand on regarde le code html généré, on voit bien que chaque commentaire est indexé.
    Cela devrait donc fonctionner sans problème.

  2. #22
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Au fait, tu n'as pas codé de getter et setter indexés dans l'ActionForm ?
    parce que si c'est le cas, il faut les enlever.

    Sinon, peux-tu préciser quelle version de Struts tu utilises ?

  3. #23
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Struts 1.3.8, je vérifie demain pour les getter et setter indexer dans le ActionForm.

  4. #24
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Si ça ne fonctionne toujours pas demain, tu pourrais éventuellement essayer avec un logic:iterate, l'attribut indexed="true" sur le tag html:text et getter et setter indexé dans l'ActionForm.
    Mais bon, normalement, il est plus simple d'utiliser les tags nested.

  5. #25
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    J'ai vérifier, je n'ai pas de getter et setter indexer. Je vais tester avec le logic iterate.

  6. #26
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    J'ai essayer avec le logic iterate, mais je dois pas être doué, ca marche pas.

    Pas d'autre pistes pour les tag nested ?

  7. #27
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Une question que je n'ai pas pensé à te poser : as-tu mis le tag nested:iterate dans un tag nested:form ?

    Sinon, pour le logic:iterate, il faut coder ceci dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <logic:iterate property="suggestions" id="suggestion">
    <tr>
    	<td><bean:write name="suggestion" property="id_suggestion"/></td>
    	<td><bean:write name="suggestion" property="id_prelevement"/></td>
    	<td><html:text name="suggestion" property="commentaire" indexed="true"/></td>
    </tr>
    </logic:iterate>
    et ajouter getter et setter indexé sur l'objet Suggestion dans l'ActionForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public Suggestion getSuggestion(int i)
    {
        return (Suggestion) this.suggestions.get(i);
    }
    public void setSuggestion(int i,Suggestion suggestion)
    {
        this.suggestions.set(i,suggestion) ;
    }

  8. #28
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    J'ai pas de <nested:form>
    Il faut le mettre en remplacement du <html:form> ?

  9. #29
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Tout à fait.

    Mais bon, je ne pense pas que cela corrige ton problème pour autant.
    J'ai déjà testé un nested:iterate dans un html:form, ça fonctionnait très bien.

  10. #30
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    J'ai fait la modif mais toujours pareil.
    Sinon, j'ai essayer ton code pour les logic iterate, mais il ne m'enregistre que la valeur du 1er champ.. J'ai regarder à l'entré du action form, les 4 zones sont renseigner avec la valeur du premier.. c'est vraiment bizarre.

  11. #31
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu le même problème si tu mets le chargement de la liste avec des valeurs null dans la méthode reset de l'ActionForm ?

    Et peux-tu montrer le code complet de l'ActionForm ?

  12. #32
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Voici le code complet
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    package XXX.forms;
     
    import XXX.metier.prelevements.Suggestion;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.servlet.ServletRequest;
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
     
    @SuppressWarnings("serial")
    public class PrelevementForm extends ActionForm{
     
    	private Integer id=null;
    	private String commentaire=null;
    	private String date_saisie_fiche=null;
    	private Integer cg=null;
    	private Integer client=null;
    	private Integer famille=null;
    	private String[] defauts=null;
    	private String typeaction=null;
    	private List<Suggestion> suggestions=new ArrayList<Suggestion>();
     
     
    	public PrelevementForm() {
    		// TODO Auto-generated constructor stub
    		System.out.println("constructeur prelevement");
    	}
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
    	{
    		ActionErrors errors = new ActionErrors();
    		return errors;
    	}
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getCommentaire() {
    		return commentaire;
    	}
    	public void setCommentaire(String commentaire) {
    		this.commentaire = commentaire;
    	}
    	public String getDate_saisie_fiche() {
    		return date_saisie_fiche;
    	}
    	public void setDate_saisie_fiche(String date_saisie_fiche) {
    		this.date_saisie_fiche = date_saisie_fiche;
    	}
    	public Integer getCg() {
    		return cg;
    	}
    	public void setCg(Integer cg) {
    		this.cg = cg;
    	}
    	public Integer getClient() {
    		return client;
    	}
    	public void setClient(Integer client) {
    		this.client = client;
    	}
    	public Integer getFamille() {
    		return famille;
    	}
    	public void setFamille(Integer famille) {
    		this.famille = famille;
    	}
    	public String[] getDefauts() {
    		return defauts;
    	}
    	public String getDefaut(int index){
    		return defauts[index];
    	}
    	public void setDefauts(String[] defauts) {
    		this.defauts = defauts;
    	}
    	public void setDefaut(int index, String value){
    		this.defauts[index]=value;
    	}
    	public String getTypeaction() {
    		return typeaction;
    	}
    	public void setTypeaction(String typeaction) {
    		this.typeaction = typeaction;
    	}
    	public List<Suggestion> getSuggestions() {
    		return suggestions;
    	}
    	public void setSuggestions(List<Suggestion> suggestions) {
    		this.suggestions = suggestions;
    	}
    }
    C'est la version pour les tag nested.
    Par contre pour implémenter la méthode reset...

  13. #33
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    En s'inspirant du code que tu as mis dans l'Action, cela donnerait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void reset(ActionMapping mapping, HttpServletRequest request)
    {
       this.suggestions=new ArrayList<Suggestion>();
       this.suggestions.add(new Suggestion());
       this.suggestions.add(new Suggestion());
       this.suggestions.add(new Suggestion());
       this.suggestions.add(new Suggestion());
    }

  14. #34
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Ca y est j'ai trouvé....
    Je suis une grosse tanche. Dans mes inits, j'ajoutais à chaque fois le même éléments, je ne faisait pas de new à chaque fois.

  15. #35
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    J'avais compris que tu initialisais ta liste avec des valeurs null.
    Si tu pré-remplis ta liste avec des valeurs, il est vrai que si tu oublies le new, tu ajoutes toujours le même élément.
    En fait, moi je pensais que c'était lorsque tu saisissais les commentaires que ça ne fonctionnait pas. Et c'est pour cela que je ne comprenais pas ce qui se passait.

    Bon, n'oublie pas le tag alors.

  16. #36
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    C'est fait...
    En fait j'initialisai avec un objet dont les propriété étaient null mais a chaque fois le même, donc quand j'en mettais 1 à jour les autres suivaient...
    Je suis un gros
    Tag positionné

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [logic:iterate] tableau de string et html:hidden
    Par Semhur dans le forum Struts 1
    Réponses: 10
    Dernier message: 30/09/2008, 10h33
  2. Parcourir un tableau de String avec logic:iterate
    Par casawi dans le forum Struts 1
    Réponses: 7
    Dernier message: 07/02/2008, 14h40
  3. [logic:iterate] afficher un tableau
    Par kkkkkk dans le forum Struts 1
    Réponses: 8
    Dernier message: 12/06/2007, 17h59
  4. Réponses: 8
    Dernier message: 28/12/2006, 11h42
  5. [ STRUTS ] [ LOGIC:ITERATE ] tableau dans un formulaire
    Par LoulouFifi dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/06/2004, 16h19

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