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 un bean d'après son nom


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut Récupérer un bean d'après son nom
    Bonjour,
    j'ai une question dont la réponse est sûrement toute simple mais je sèche complètement.
    Je suis en train d'écrire un custom tag dans un fichier .tag
    J'aimerais afficher, avec les tags jsp ou jstl, la valeur d'un objet dont je connais le nom.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ attribute name="bean" required="false"%>
    <c:out value="${bean}"/>
    Dans le cas présent si j'ai appelé mon tag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <test:monTag bean="poisson"/>
    dans ma page jsp j'afficherai "poisson" or j'aimerais afficher la valeur de mon instance d'un objet (dont je ne connais pas forcément le type) appelée "poisson" (qui existe bien sûr).

    Merci pour d'éventuelles réponses.

  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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Je ne suis pas sûr d'avoir bien compris ton besoin... pourrais-tu être plus clair ?

    Ce que je comprends, c'est que tu connais juste le nom d'un objet dans un scope mais pas son type et tu voudrais afficher quelque chose (mais quoi ?) de cet objet...
    Il semble qu'une interface pourrait être la bienvenue... tous les différents types que tu veux traiter n'ayant qu'à implémenter l'interface...

    Bref, j'attends tes précisions

  3. #3
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Effectivement ça manque peut être de clarté.
    En fait, la finalité c'est de "surcharger" le tag Struts suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write bean="poisson" property="famille"/>
    Du coup dans ma custom tag je récupère bien les valeurs de "bean" et "property" sous forme de string, à savoir "poisson" et "famille".
    Mon custom tag est définit dans un fichier .tag qui se code en html/jsp/jstl, je cherche donc à afficher la valeur d'après les noms de la property et du bean que j'ai en paramètre.
    N'hésites pas à me dire si ce n'est toujours pas clair.

  4. #4
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Bon en fait je pense avoir trouvé, il suffit d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value="${requestScope[bean]}"/>
    Il me suffit de tester les 3 scopes...
    Si meilleure solution je suis preneur, mais cela semble bien fonctionner

  5. #5
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu peux utiliser l'introspection dans ton tag, quelque chose comme ceci
    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
    // RechercheUtilisateursForm : nom d'un objet dans un des scope
    Object obj = pageContext.findAttribute("RechercheUtilisateursForm"); 
    if (obj != null)
    {
        for (Field field : obj.getClass().getSuperclass().getDeclaredFields())
        {
            // On recherche la propriété "defaultSettingFunctionName" dans la classe mère
            if ("defaultSettingFunctionName".equals(field.getName()))
            {
                field.setAccessible(true);
                System.out.println(field.get(obj));
            }
        }
    }

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

Discussions similaires

  1. Récupérer un noeud XML par son nom
    Par mhamdi45 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/07/2007, 18h10
  2. Appel d'une méthode d'après son nom
    Par RemiRoques dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 19/06/2006, 13h14
  3. Recherche d'un fichier d'aprés son nom
    Par gids01 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 10/05/2006, 10h19
  4. Récupérer une variable à partir de son nom ...
    Par CynO dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/10/2005, 16h59
  5. Réponses: 3
    Dernier message: 24/09/2004, 21h21

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