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 :

Tableaux modifiables dans un 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
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Par défaut Tableaux modifiables dans un formulaire
    Bonjour à tous,

    Je suis nouveau développement web avec Struts (1.3) et je suis face à un problème depuis quelque jours qui me semble pourtant simple à réaliser.

    J'ai besoin d'afficher une liste d'objet dans ma jsp, ces objets ont des propriétés modifiables. Il s'agit donc d'un formulaire. Ce que je ne comprend pas c'est pour l'affichage tout ce passe correctement, je retrouve bien les données de mes objets. Par contre lorsque je sauve mon formulaire, les propriétés modifiées ne sont pas sauvées, je ne les récupère pas au niveau de mon action. Bien entendu je n'ai aucune erreur (au niveau de mon validate).
    Je pense alors que je m'y prend mal, mais en vérité je ne vois pas vraiment à quel niveau ...

    Pour vous donner une idée plus précise voici ma config ...

    struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <struts-config>
        <form-beans>
            <form-bean name="myActionForm" type="test.MyActionForm"/>
        </form-beans>
        <action path="/testFrom" name="myActionForm" type="test.MyAction" input="/forumlaire.jsp">
            <forward name="success" path="/success.jsp"/>
        </action>	
    </struts-config>
    MyActionFrom.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class MyActionForm extend ActionForm {
        private List myList;
        //les getter et setter sont standard (public) et contiennent des objets Personne
    }
    Personne.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class Personne {
        private String fisrtName;
        private String lastName;
        //les getter et setter sont standard (public)
    }
    Rien de particulier n'est fait dans MyAction qui extends Action et qui return "success".

    formulaire.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ...
    <html:from action="/testFrom">
        ...
        <logic:iterate id="pers" name="myActionForm" property="myList" type="test.Personne">
            <html:text property="fisrtName" name="pres" size="100" />
            ...
            <html:text property="lastName" name="pres" size="100" />
        </logic:iterate>
        ...
    </html:from>
    ...
    Avez-vous une idée?

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il manque indexed="true" au niveau <html:text>.

    Je n'utilise pas ces tags donc il se peut qu'il faille coder quelque chose d'autre mais c'est un début...
    (j'utilise struts-layout qui possède un composant <layout:datagrid> pour ce genre de choses)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Par défaut
    Merci mais malheureusement ajouter indexed="true" ne change rien à mon problème.

    Si je le peut j'aimerais évité d'utiliser DataGrid avec struts:layout. Je fais la mise à jour d'une application qui ne l'utilise pas encore et j'aimerais garder les standard utilisé dans l'existant.

    Donc si il y a quelqu'un qui connait un autre moyen qui utilise les bases de struts, je suis preneur!

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Bon, finalement, c'est très null
    Voilà ce qui devrait fonctionner dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:iterate id="myList" name="myActionForm" property="myList" type="test.Personne">
        <html:text name="myList" property="fisrtName" indexed="true" size="100" />
        ...
        <html:text name="myList" property="lastName" indexed="true" size="100" />
    </logic:iterate>
    avec l'id de <logic:iterate> "myList" du même nom que la propriété List<Personne> de ton ActionForm
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    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 indexed="true", cela ne peut fonctionner que si tu codes getter et setter indexés sur l'objet de type Personne dans l'ActionForm.

    Sinon, pour éviter d'ajouter getter et setter indexés dans l'ActionForm, je te conseille d'utiliser les tags nested comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <nested:iterate name="myActionForm" property="myList">
            <nested:text property="fisrtName" size="100" />
            ...
            <nested:text property="lastName"size="100" />
        </nested:iterate>

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Avec indexed="true", cela ne peut fonctionner que si tu codes getter et setter indexés sur l'objet de type Personne dans l'ActionForm.
    Non, j'ai testé, ça fonctionne. La contrainte étant qu'il faut mettre le nom de la liste comme id de <logic:iterate>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Zone de liste modifiable dans le formulaire
    Par erikac dans le forum Access
    Réponses: 5
    Dernier message: 11/05/2006, 12h00
  2. listes modifiables dans un formulaire
    Par lolo_bob2 dans le forum Access
    Réponses: 4
    Dernier message: 24/04/2006, 11h22
  3. Réponses: 1
    Dernier message: 06/12/2005, 20h40
  4. Réponses: 5
    Dernier message: 30/09/2005, 16h42
  5. [Tableaux] tableau dans un formulaire
    Par Elo13 dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2005, 17h28

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