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 formulaire


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
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut <logic:iterate> et formulaire
    Bonjour,
    Cette question a déjà été abordée mais malgré mes recherches sur le forum ou sur le web, je n'arrive pas à me sortir du problème. Il me manque un élément je pense.
    Voilà: je voudrais afficher un formulaire de 13 lignes identiques contenant chacune un certain nombre de champs saisie, et je voudrais bien sûr l'exploiter ensuite.
    Avec ce que j'ai fait, la page jsp ne s'affiche pas. Elle "bute" sur le logic:iterate (si je supprime le logic:iterate, elle ne s'affiche pas).

    jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html:form action="/valideDecompte">
    	<logic:iterate id="listeLignes" property="lignes" length="13">
    		<html:text name="listeLignes" property="motif" indexed="true"></html:text>
    		<html:text name="listeLignes" property="acte" indexed="true"></html:text>
    	</logic:iterate>
    </html:form>
    ActionForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class DecompteForm extends ActionForm {
     
    	private List<LigneDecompte> lignes;
     
    	public List<LigneDecompte> getLignes() {
    		return lignes;
    	}
    	public void setLignes(List<LigneDecompte> lignes) {
    		this.lignes = lignes;
    	}
    }
    Le bean LigneDecompte contient les deux champs motif et acte.

    struts-config (extrait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form-bean name="decompteForm"
    	type="fr.irpauto.ipsa.saisiedecomptes.web.form.DecompteForm" />
    ...
    <action path="/valideDecompte" name="decompteForm"
    	type="fr.irpauto.ipsa.saisiedecomptes.web.action.DecompteAction">
    </action>
    Qu'est-ce qu'il me manque?
    Merci pour votre aide.

  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
    Quand tu utilises l'attribut index="true", il faut ajouter getter et setter indexés sur ton objet LigneDecompte dans DecompteForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public LigneDecompte getLigneDecompte(int i)
    	{
    	    return (LigneDecompte) this.lignes.get(i);
    	}
     	public void setLigneDecompte(int i,LigneDecompte ligneDecompte)
    	{
    	    this.lignes.set(i,ligneDecompte) ;
    	}
    EDIT : et j'oubliais, la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <logic:iterate name="decompteForm" property="lignes" id="ligneDecompte">
    	<html:text name="ligneDecompte" property="motif" indexed="true"/>
    	<html:text name="ligneDecompte" property="acte" indexed="true"/>
    </logic:iterate>

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Merci bien, mais désolé cela ne marche pas.
    Questions (jsp):
    - j'ai utilisé length="13" pour afficher 13 lignes, est-ce correct? (toi tu ne l'as pas mis).
    - name="decompteForm" est-il nécessaire vu que je suis dans un <html:form> qui est lié à DecompteForm?

  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
    Je n'ai jamais utilisé l'attribut length donc je ne sais pas si c'est correct. Il faudrait vérifier sur le site de Struts.

    Le name n'est effectivement pas obligatoire pour la majorité des tags Struts à partir du moment où ils sont inclus dans un tag html:form mais il me semble qu'il faille le coder dans le cas du logic:iterate. A vérifier et puis, ça doit dépendre aussi de la version de Struts que l'on utilise.

    Sinon, peux-tu préciser ce qui ne fonctionne pas ?
    As-tu un message d'erreur ? si oui, lequel ?

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    OK.
    Oui la difficulté c'est que je n'ai pas de message d'erreur. La page jsp s'affiche en partie: quand j'affiche le code source de la page, la partie correspondant au formulaire n'est pas présente. C'est comme si il n'arrivait pas à interpréter les tags logic:iterate, je ne sais pas... Quand je supprime purement et simplement ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <logic:iterate name="decompteForm" property="lignes" id="ligneDecompte">
    	<html:text name="ligneDecompte" property="motif" indexed="true"/>
    	<html:text name="ligneDecompte" property="acte" indexed="true"/>
    </logic:iterate>
    le formulaire est bien présent dans le code source de la page, mais il est vide bien sûr.
    J'espère que je suis clair.

  6. #6
    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
    Peux-tu montrer le code complet de la jsp ?

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

Discussions similaires

  1. logic:iterate multiple dans formulaire
    Par Saris dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/05/2008, 13h18
  2. [logic:iterate] deux formulaires dans un jsp.
    Par Ekinoks dans le forum Struts 1
    Réponses: 17
    Dernier message: 19/06/2007, 10h05
  3. struts formulaire dans logic:iterate
    Par jeb001 dans le forum Struts 1
    Réponses: 1
    Dernier message: 07/08/2006, 15h50
  4. [ STRUTS ] [ LOGIC:ITERATE ] tableau dans un formulaire
    Par LoulouFifi dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/06/2004, 16h19
  5. [Struts] logic:iterate avec un Vector
    Par laurentb dans le forum Struts 1
    Réponses: 18
    Dernier message: 03/03/2004, 14h42

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