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 :

itération sur des objets de types différents ?


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 43
    Points : 35
    Points
    35
    Par défaut itération sur des objets de types différents ?
    Bonjour,

    voila je n'arrive pas à faire ce que je veux dans ma page jsp. (je suis pas encore trés doué en java / jsp . d'ailleurs je sais pas si je le serais un jour)
    j'itére sur une collection d'objet qui peuvent être de type différent et j'aimerais savoir sur quel type je suis en cours pour pouvoir appliquer telle ou telle méthode.
    Voila un exemple :


    dans ma jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    <c:forEach var="element" items="${elements}">
    	<c:if test="${ element est de type B }">
    		${element.methodeB}
    	</c:if>
     
    	<c:if test="${ element est de type C }">
    		${element.methodeC}
    	</c:if>
    </c:forEach>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Class A {
     
    	...
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Class B extends A {
    	...
    	private String getMethodB()
    	...
    }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Class C extends A {
    	...
    	private String getMethodC()
    	...
    }

    (au passage c'est une collection chargé automatiquement par hibernate)

    Merci d'avance. Julien C.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    quelques pb :

    - dans les EL de la JSTL j'ai vu que le mot instanceof était réservé mais pas encore utilisé
    - on peut le remplacer par ${foo.class.name} puis le comparer avec le nom complet de la classe.
    - il y a une librairie de tag "Unstandard" de apache qui permet de faire ca.

    mais je vais toujours avoir un probleme parce que j'utilise hibernate avec un lazy loading. Je crois que hibernate créée un proxy donc le instanceOf et le reste ne vont pas fonctionner.

    Comment je peux faire ???

  3. #3
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Bonjour,

    Prso j'aurais utilisé InstanceOf. Dailleurs je ne comprends pas pourquoi tu ne pourrais pas l'utiliser. D'ailleurs ca m'interresserai d'avoir plus de details sur ca ...

    Cependant je te propose une aute solution, peut etre un peu " lourde " mais efficace :
    - creer une methode qui renvoie le nom de la classe dans chaque classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public string getClass(){ return " Class : Chien "; }
    ensuite tu n'a plus qu'a faire les tests :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (A.getClass().equals(" Class : Chien "){ // je suis un chien ! }
    else if (A.getClass().equals(" Class : Chat "){ // je suis un chat ! }
    else if (A.getClass().equals(" Class : Lapin "){ // je suis un lapin ! }

    voili vouilou
    .-*K.E.U.B*-.

Discussions similaires

  1. xsd:all sur des éléments de type différents
    Par Steph0 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/08/2012, 18h04
  2. Réponses: 6
    Dernier message: 07/11/2011, 14h20
  3. Réponses: 4
    Dernier message: 23/02/2010, 16h33
  4. Réponses: 2
    Dernier message: 10/09/2009, 08h30
  5. Réponses: 3
    Dernier message: 09/01/2007, 15h27

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