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

Servlets/JSP Java Discussion :

récupérer des champs similaires d'objets différents dans une JSP


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 28
    Points
    28
    Par défaut récupérer des champs similaires d'objets différents dans une JSP
    bonjour à tous,
    je vais essayer d'exposer mon problème le plus simplement possible :

    j'ai une base de données :
    table : "A"
    colonnes : id unique, nom, prenom
    ligne1 : 7, a, laurent
    ligne2 : 43, b, fred

    un BEAN :
    monBean
    {
    String nom;
    String prenom;
    }

    un FORM :
    monForm
    {
    Map maMap;
    }

    une ACTION :
    je remplis ma liste avec des élèments de la table A, avec en clé de chaque élément de la liste l'id unique
    monForm.getMaMap.put(7, monBean(a,laurent));
    monForm.getMaMap.put(43, monBean(c,fred));

    la JSP :
    je boucle pour afficher des champs texte modifiables:
    <forEach var="homme" items="{monForm.maMap}">
    <html:text property="maMap.{homme.key}.nom"> <html:text property="maMap.{homme.key}.prenom">
    </forEach>

    et donc je me retrouve avec :
    <html:text property="maMap.7.nom"> <html:text property="maMap.7.prenom">
    <html:text property="maMap.43.nom"> <html:text property="maMap.43.prenom">

    et donc, quand je submit, il considère que "7" et "43" sont deux beans utilisés dans "monForm", chacun ayant les propriétés "nom" et "prénom"

    sauf que moi, ce que j'affiche c'est juste "map.clé.valeur" et lui il ne sait pas récupérer juste la "map" :'(

    je ne vois pas comment faire, si vous avez une idée pour récupérer plusieurs champs similaires mais de beans différents, je suis preneur !
    merci beaucoup pour toute l'aide que vous pourrez m'apporter.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut
    Citation Envoyé par wyniwyg Voir le message
    je ne vois pas comment faire, si vous avez une idée pour récupérer plusieurs champs similaires mais de beans différents, je suis preneur !
    Il faut mettre ces beans dans une liste et cette liste dans la session, et ensuite itérer sur la liste avec un tag jsp.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par slevy Voir le message
    Il faut mettre ces beans dans une liste et cette liste dans la session, et ensuite itérer sur la liste avec un tag jsp.
    oui, je pense qu'avec un logic:iterate cela devrait passer, si c'est le tag auquel tu penses...
    mais comment rendre unique chaque champ "similaire", par exemple si j'affiche 10 personnes, j'aurai 10 champs "nom" mais chacun correspondant à une personne ? l'itération va spontanément gérer l'unicité de chaque bean ?

  4. #4
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Qu'est ce que tu veux faire excatement ?

    afficher une liste de personne sous forme de tableau ?

    le logic:iterate te permet de parcourur ta liste de bean,
    à chaque itération si va passer au beanUser suivant de ta liste et en afficher la propriété que tu veux.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par link256 Voir le message
    Qu'est ce que tu veux faire excatement ?
    dans ma base, j'ai une table avec une colonne d'id unique et des champs text

    côté java j'ai une map que je remplis avec des bean, et dont la clé de chaque bean dans cette map est son id unique en base

    et dans la jsp je veux afficher ces bean, dont chaque champ doit pouvoir être modifiable dans un champ text :
    je glisse donc l'id dans mon champ property pour unicifier (?) chaque champ :

    <c:forEach var="monBean" items="${monForm.maMap}">
    <html:text name="monForm" property="maMap.${droit.key}.propriété"/>
    </c:forEach>

    ainsi je me retrouve avec ça :

    <input type="text" name="maMap.1.propriété" value="valeur_de_propriété_du_premier_bean_de_la_boucle">
    <input type="text" name="maMap.2.propriété" value="valeur_de_propriété_du_second_bean_de_la_boucle">
    <input type="text" name="maMap.3.propriété" value="valeur_de_propriété_du_troisième_bean_de_la_boucle">

    quand je soumet mon form, il me retourne une "IllegalArgumentException : No
    bean specified" car dans monForm, je n'ai pas déclarer les beans "1", "2", etc. qui possèdent la propriété "propriété"

    forcément je ne connais pas à l'avance l'identifiant unique que je vais ramener de la base

    bref je ne vois pas comment m'en sortir, pour rendre unique chacun de ces champs

    en gros, ce que je cherche, c'est identifier facilement chacun des X champs "propriété" de mon formulaire...

  6. #6
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    Soit tu arrives à cela :

    <input type="text" name="nom1" value="toto">
    <input type="text" name="prenom1" value="pierre">
    <input type="text" name="nom.2" value="titi">
    <input type="text" name="prenom.2" value="paul">
    <input type="text" name="nom.3" value="tata">
    <input type="text" name="prenom.3" value="jacques">

    à la validation tu as bien id associé à la personne tu n'as plus qu'a reconstruire.

    et cherche des exemples d'utilisation de logic:iterate

    Par rapport à ce que tu veux faire tu pourrais peut être partir sur quelque chose qui ressemble àc e qui ets décrit dans ce post : http://www.developpez.net/forums/d68...t-ds-page-jsp/

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/02/2010, 12h39
  2. objets différents dans une colonne de datagrid
    Par Pascale38 dans le forum Flex
    Réponses: 25
    Dernier message: 22/01/2009, 18h05
  3. Différence d'affichage des objets null dans une JSP
    Par marinew dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 26/08/2008, 09h03
  4. Réponses: 4
    Dernier message: 25/04/2007, 16h23
  5. Réponses: 3
    Dernier message: 28/02/2006, 17h52

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