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 2 Java Discussion :

récupérer les attributs d'un bean qui est dans une liste qui elle-même est attribut d'un autre bean !


Sujet :

Struts 2 Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut récupérer les attributs d'un bean qui est dans une liste qui elle-même est attribut d'un autre bean !
    Bonjour,

    Voici le décor :
    J'ai un BeanA qui a pour attributs une String et une List<BeanB>.
    Le BeanB a pour attributs deux String.
    Dans ma JSP, je récupère une liste de plusieurs beanA.

    Je ne dois utiliser que les tag suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ taglib uri = "/WEB-INF/taglib/struts-bean.tld" prefix = "bean"%>
    <%@ taglib uri = "/WEB-INF/taglib/struts-html.tld" prefix = "html"%>
    <%@ taglib uri = "/WEB-INF/taglib/struts-logic.tld" prefix = "logic"%>
    Voici le beanA :
    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
    public class BeanA {
     
    	//ATTRIBUTS
    	private final String code;
    	private final List<BeanB> beanBList;
     
    	//CONSTRUCTOR
            public BeanA(){this(null, null);}
    	public BeanA(String code, List<BeanB> beanBList) {
    		this.code = code;
    		this.beanBList = beanBList;
    	}
     
    	//ACCESSORS
    	public String getCode() {return code;}
    	public List<BeanB> getBeanBList() {return beanBList;}
    }
    Voici le BeanB :
    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
    public class BeanB {
    	//ATTRIBUTES
    	private String att1;
    	private String att2;
     
    	//CONSTRUCTORS
    	public BeanB(){this(null, null);}
    	public BeanB(String att1, String att2) {
    		super();
    		this.att1 = att1;
    		this.att2 = att2;
    	}
     
    	//ACCESSORS
    	public String getAtt1() {return att1;}
    	public String getAtt2() {return att2;}
    }
    Voici le code de ma JSP, il n'est pas fini car je n'arrive pas à récupérer les attributs du BeanB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script language="javascript">
    	var conf = {
    		<logic:iterate id="option" name="beanAList">
    			'<bean:write name="option" property="code"/>' : { conf : <bean:write name="option" property="beanBList"/>},
    		</logic:iterate> 
    	};
    </script>
    Ce que je souhaite faire :
    Dans ma JSP, je souhaite construire une config qui devra avoir cette forme pour ensuite l'exploiter dans un javascript :
    Ci-dessous, les méthodes get donneront bien sûr directement l'attribut souhaité ... de même, BeanA.getCode() donnera lui aussi l'attribut code souhaité. Disons que c'est struts qui s'occupe de cela ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {
    	{'BeanA.getCode' : 
    		{ conf : BeanB.getAtt1(), BeanB.getAtt2(), 
    		BeanB.getAtt1(), BeanB.getAtt2(),
    		BeanB.getAtt1(), BeanB.getAtt2()},
    	'BeanA.getCode' : 
    		{ conf : BeanB.getAtt1(), BeanB.getAtt2(), 
    		BeanB.getAtt1(), BeanB.getAtt2(),
    		BeanB.getAtt1(), BeanB.getAtt2()},
    	... etc
    };
    Pour l'instant, j'arrive à récupérer les BeanB mais pas leurs attributs ... du coup j'obtiens ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    {
     
    	'BeanA.getCode' : { conf : [package.BeanB@e8e70f0, package.BeanB@2998a407, package.BeanB@6438dce6, package.BeanB@512eb371, package.BeanB@5106e95a, package.BeanB@1cc23d45, package.BeanB@14448bc3]},		
    	'BeanA.getCode' : { conf : [package.BeanB@2033b99a, package.BeanB@23de3dfa, package.BeanB@53b6fa7b, package.BeanB@11f6cc2d, package.BeanB@61d6a791, package.BeanB@539352c5, package.BeanB@6d1f2e60]},
     
    ...etc
    	};
    Si quelqu'un veux bien m'aider !?!

    Merci,
    OS : LinuxMint 20

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut Euréka !!!
    Cool ! j'ai trouvé !!!

    donc voici le code qu'il me fallait utiliser dans la JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script language="javascript">
    	var conf = {
    		<logic:iterate id="option" name="beanAList">
    			'<bean:write name="option" property="code"/>' : {
    				<logic:iterate id="beanB" name="study" property="beanBList">
    					'<bean:write name="beanB" property="att1"/>' : {conf: <bean:write name="beanB" property="att2"/> },
    				</logic:iterate>
    			},
    		</logic:iterate> 
    	};
    </script>
    Ceci donne cela dans ma page html :
    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
    var conf = {
    	'conf1' : {
    		'chat' : {conf : 35 },
     
    		'chien' : {conf : 56 },
     
    		'souris' : {conf : 134 },
     
    	},
     
    	'conf2' : {
    		'chat' : {conf : 27 },
     
    		'chien' : {conf : 78 },
     
    		'souris' : {conf : 12 },
     
    	},
    };
    je l'exploite ensuite comme ceci dans une js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var conf = conf[option][att1].conf;
    OS : LinuxMint 20

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

Discussions similaires

  1. Récupérer la propriété d'un objet qui est dans une List
    Par ysumatta dans le forum Général Java
    Réponses: 3
    Dernier message: 08/08/2015, 10h26
  2. Réponses: 7
    Dernier message: 29/06/2008, 12h57
  3. Réponses: 4
    Dernier message: 17/12/2007, 14h46
  4. Réponses: 8
    Dernier message: 14/12/2007, 16h04
  5. Savoir si un objet d'une certaine classe est dans une liste
    Par Denti-fritz dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2007, 09h05

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