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 :

formulaire avec des champs multiples


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 67
    Points : 39
    Points
    39
    Par défaut formulaire avec des champs multiples
    Bonjour,

    je suis entrain de développer une application web en struts, et je me trouve avec un problème bloquant.
    je voudrais faire un formulaire avec des champs multiples. je m'explique : mon application doit générer un formulaire selon les lignes de la base de données, du coup, le nombre de champs qu'il peut contenir est inconnu d'avance.

    je ne sais pas comment déclarer ça dans struts-config ?

    j'espère que j'étais claire. merci d'avance

  2. #2
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Quand tu dis ligne de base de donnees je suppose, que veux parler d'enregistrement ?!?
    Dans ce cas il te suffit de mettre les elements de ta base de donnees dans une collection de beans dans ton action.
    et de faire une boucle dans ta jsp en utilisant le tag logic:iterate par exemple.
    Et dans cette boucle ecrire autant de champs que tu veux.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 67
    Points : 39
    Points
    39
    Par défaut
    salut,
    oui exactement je veux dire un enregistrement.
    Oui pour générer le formulaire, il suffit de faire une boucle et de mettre mon champ à l'intérieur. mais ma question était comment configurer le struts-config ? et comment je pourrais récupérer mes données dans l'action du formulaire.
    merci

  4. #4
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Euh bon.
    As-tu deja realiser quelque chose en struts ?
    Si non regarde les tutoriels .
    Et part d un exemple simple.
    Ensuite pour faire une boucle, c est pas tellement different a part que tu dois charger les enregistrements de ta table dans une collection que tu mettra en attribut de session.Avec logic:iterate tu accederas a cette collection

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 67
    Points : 39
    Points
    39
    Par défaut
    salut,

    la première partie est déjà faite: je récupère mes enregistrements dans une collection, puis je les affiche dans ma jsp.
    l'objectif de mon application est de pouvoir mettre à jour tous les enregistrements à partir d'une même page jsp.
    pour cela je veux récupérer (dans la classe Action) la liste affichée aprés la modification des champs. mon problème maintenant est que je récupère toujours la même liste initiale .
    voici mon un extrait du code :
    struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form-bean name="csProjetParamForm" type="forms.CsProjetParamForm">
    <form-property name="projetParamList" type="java.util.List" />			</form-bean>
    ...
    Jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html:form action="/csIndProjetParamManager">
    ...
    <logic:iterate id="t" name="csProjetParamForm" property="projetParamList">
    <html:text name="t"  property="nom" size="7"></html:text>
    <html:text name="t"  property="date" size="7"></html:text>
    </logic:iterate>
    ...
    <html:submit value="Valider" />
    ...
    ActionForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class CsProjetParamForm extends DynaActionForm {
     
    private static final long serialVersionUID = 1L;
     
    public void reset(ActionMapping mapping, HttpServletRequest request) {
    List projetParamList = 	HibernateUtils.reqListHibernate("FROM ProjetParam");
    this.set("projetParamList", projetParamList);
    }}
    Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception {
    	CsProjetParamForm formulaire = (CsProjetParamForm)form;
    	List projetParamList = (List)formulaire.get("projetParamList");
            // Mise à jour.
             ...
    	return mapping.findForward("reponse1");
    }
    merci.

  6. #6
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Ah ok, je vois ce que tu veux faire, dans ce cas peut etre le datagrid pourra t aider ou quelque chose qui y ressemble:

    http://struts.application-servers.co...rid/index.html

    je ne l ai malheureusement jamais utilise et donc ne peut t aiguiller.

    Sinon tu peux aussi continuer sur l idee du logic:iterate, mais en mettant le contenu dans des input type="text" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="nom_<%=numero_ligne%>" value="<bean name="t"  property="nom" size="7"/>"/>
    Tu incremente ton numero_ligne a chaque iteration.

    Au niveau java tu recupere tes nom_1, nom_2 comme parametres et tu les reecris dans ton bean.
    C'est un peu fastidieux, mais possible.

    Generalement ce qui se fait, c est plutot de montrer une liste d elements, cliquer sur une element pour le modifier dans une autre page.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 67
    Points : 39
    Points
    39
    Par défaut
    ok, merci bp!
    je crois la solution de la DATAGRID est très adaptée.
    sinon pour la deuxième solution, peux tu me donner un petit exemple de code pour voir comment tu incrémentes le numéro de la ligne.

    merci une autre fois

  8. #8
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    <logic:iterate> est pas mal.

    IL te permet de parcourir toutes tes lists, collection, hashmap en plus il te gere l'index.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:iterate id="builder" name="builderForm" property="builderBean" type="package.type.BuilderBean" indexId="builderId">

    Si j'étais toi une bonne List de tous les champs que tu dois mettre est une bonne chose (j'ai pas trop de recul avec struts ca fait qu'un mois que je m'y suis mis, p'etre que les "vieux" trouveront ca pas trop bien).

  9. #9
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par don'de
    sinon pour la deuxième solution, peux tu me donner un petit exemple de code pour voir comment tu incrémentes le numéro de la ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%int numero_ligne=1;%>
    <logic:iterate id="t" name="csProjetParamForm" property="projetParamList">
    <%numero_ligne++;%>
    <input type="text" name="nom_<%=numero_ligne%>" value="<bean name="t"  property="nom"/>"/>
    </logic:iterate>
    voila

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 67
    Points : 39
    Points
    39
    Par défaut
    ok, merci.
    par contre la balise input ne marche pas bien avec une autre balise bean dedans
    meme si on supprime les cotes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="text" 
    name="jourDev<%=i%>" 
    value="<bean name="t" property="jourDev" size="5"/>" />

  11. #11
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    utilise de simples cotes dans ce cas pour la partie html

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 67
    Points : 39
    Points
    39
    Par défaut
    merci bp à tout le monde.
    c'est résolu en utilisant la deuxième solution, en attendant de découvrir le datagrid.
    pour ceux qui veulent les détails:
    jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <logic:iterate id="t" name="csProjetParamForm" property="projetParamList" indexId="i">
    <input type="text" name="nom<%=i%>" size="5" 
    value="<bean:write name="t" property="jourDev"/>" />
    ...
    Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CsProjetParamForm formulaire = (CsProjetParamForm)form;
    List projetParamList = (List)formulaire.get("projetParamList");
     
    int i =0;
    while (it.hasNext()) {
    projetParam = (ProjetParam)it.next();
    projetParam.getNom((String)req.getParameter("nom"+i));
    i++
    ...
    merci une autre fois !
    ce forum est super interéssant

  13. #13
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    <input ......
    C'est pas trop du struts ca.
    Struts c'est plutot : <html:text property=".......

  14. #14
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par maxf1
    <input ......
    C'est pas trop du struts ca.
    Struts c'est plutot : <html:text property=".......
    Oui, c est pas du struts ce qu il a fait, mais dans son cas, je vois pas comment faire autrement etant donne qu il ne sait pas combien il aura de lignes, il ne peut creer un ActionForm avec x lignes.
    Ou alors avec une collection ?

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

Discussions similaires

  1. Formulaire avec des champs supplémentaire
    Par Akramweb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/04/2014, 14h00
  2. Formulaire avec des champs grisés qui se dégrisent quand on coche
    Par francky74 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/08/2011, 10h06
  3. soumettre un formulaire avec des champs vides
    Par pesti dans le forum GWT et Vaadin
    Réponses: 11
    Dernier message: 17/03/2009, 16h04
  4. Réponses: 13
    Dernier message: 22/10/2008, 10h19
  5. [XHTML] Champ de formulaire avec des *
    Par Hayabusa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/06/2006, 21h35

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