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 :

[taglib struts] recuperation propriete d'un objet


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut [taglib struts] recuperation propriete d'un objet
    voila j'aurai voulu savoir si quelqun connaissait un tag permettant d'acceder au propriétés d'un objet.

    Ca fait 2 jour que je cherche sur internet et je trouve que des tag pour acceder au proprietes d'un bean.

    J'ai essayer de bien ecrire ma class avec les methodes get et set orthographié comme pour un bean mais ca ne fonctionne pas non plus...

    AUSSECOURS !!!

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu mis ton objet dans le scope ?
    Qu'as-tu codé dans ta jsp qui ne marche pas ?
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    j'envoie a ma jsp un objet de type utilisateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("user",user);
    et dans ma jsp , je veux afficher son nom.
    EN java je fesais ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    				<%
    					Utilisateur user = (Utilisateur)request.getAttribute("user");
    					out.print("<tr align=center>");
    						out.print("<td><font color='navy'>");
    							out.print(user.GetNom());
    						out.print("</font></td>");			
    				%>
    et moi je veux obtenir la meme chose mais seulement avec des taglibs
    j'ai essayer ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value="${user.nom}"/>
    et il me repond ca :

    org.apache.jasper.JasperException: =Impossible de trouver de l'information sur la propriété 'nom' dans le bean de type 'metiers.user'

    evidemment a lorigine mon objet n'est pas un bean mais j'ai mis la meme orthographe (le probleme etant aussi qu 'il est pas declarer dans struts config)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    oui j ai essayer ca aussi mais meme probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean:write name="utilisateur" scope="request" property="nom"/>

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    org.apache.jasper.JasperException: =Impossible de trouver de l'information sur la propriété 'nom' dans le bean de type 'metiers.user'
    Ce qui me surprend, c'est 'metiers.user'.

    Normalement, d'après ce que j'ai compris, user est une instance de la classe Utilisateur.Tu as fait un user.setNom("unNom") puis tu as mis cette instance dans le scope request.

    Et normalement ceci doit marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <c:out value="${user.nom}"/>
    Tu n'aurais pas un tag du type jsp:usebean quelque part dans ta jsp ?
    Modératrice Java - Struts, Servlets/JSP, ...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    avec ce code la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value="${user.nom}"/>
    j'obtiens ce message d'erreur

    javax.servlet.ServletException: An error occurred while evaluating custom action attribute "value" with value "${user.nom}": Unable to find a value for "nom" in object of class "metiers.utilisateur" using operator "." (null)

    je me demande si ca vient pas de la version de mes jsp (1.0) et si cette méthiode ne fonctionne pas qu avec les jsp 2.0

    et je n'est pas de tag usebean

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    je sais pas si ca peut aider mais quand je tappe seulement

    <c:out value="${user}"/>

    j'obtiens :

    metiers.Utilisateur@b80f1c

    metier c'est le nom du package au fait...

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu as bien une directive taglib en haut de ta jsp faisant référence à la tld c.tld comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
    Et tu as bien copié c.tld sous WEB-INF ?
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    y avait effectivement une faute dans ma directive,
    donc ce coup ci plus de message d'erreur , mais rien ne s'affiche
    (c'est un bon debut quand meme )

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Met nous le code de l'instanciation de ta classe Utilisateur (code de l'action)... Apres on pourra plus facilement t'aider

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  11. #11
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu es sûr d'avoir renseigné le nom de l'utilisateur via un setNom ?

    Que vois-tu si tu fais "Affichage -> Source" sur ta jsp ?
    Modératrice Java - Struts, Servlets/JSP, ...

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    ok
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    package metiers;
     
    public class Utilisateur 
    {
    	private String nom;
    	private String email;
     
    	public Utilisateur(){}
     
    	public Utilisateur(String nom, String email)
    	{
    		this.nom = nom;
    		this.email = email;
    	}
     
    	public void SetNom(String nom)
    	{
    		this.nom = nom;
    	}
     
    	public String GetNom()
    	{
    		return this.nom;
    	}
     
     
    	public void SetEmail(String email)
    	{
    		this.email = email;
    	}
     
    	public String GetEmail()
    	{
    		return this.email;
    	}
     
    }

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Salut,

    Citation Envoyé par Morpheus2144
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
     
    	out.print(user.GetNom());
    ...
    Je ne suis pas sur du tout mais si ton accesseur contient un "G" majuscule, je ne suis pas sur que les EL le retrouve...
    Quand tu fais ça
    Citation Envoyé par Morpheus2144
    il me semble que c'est "transformé" en user.getNom() sans majuscule...

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    +1 ton Utilisateur n'est pas un JavaBean...
    "nom" et "prénom" doivent etre accompagnés des "getters" et "setters" associés "getNom", "setNom", "getPrenom", "setPrenom" (get ou set + nom de la propriété avec sa première lettre en majuscule)

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  15. #15
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    +1
    Depuis le début, je te parle de la méthode setNom().Tu aurais pu t'apercevoir de ton erreur
    Mais j'avoue n'avoir pas vu non plus le user.GetNom() de ta scriptlet.
    C'est dur le Vendredi.
    Modératrice Java - Struts, Servlets/JSP, ...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Je sais que mon utilisateur n'est pas un JavaBean c'est la classe qui me permet d'acceder à ma base via JDO.

    C'etait justement ca ma question , existe il un taglib qui permette d'acceder au propriete d'un objet qui n'est pas un javabean?

    Mais je ne peux que reconnaitre ma stupidité pour l'orthographe de set et de get surtout qu'aprés correction , ca marche !!!

    Dsl de vous avoir déranger pour sui peu...

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    mais tu ne nous deranges pas

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  18. #18
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    +1, tu ne nous déranges pas du tout.

    Pour en revenir à la taglib c.tld, le plus propre serait de la déclarer à la fin de ton web.xml comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      <taglib>
        <taglib-uri>/tags/c</taglib-uri>
        <taglib-location>/WEB-INF/c.tld</taglib-location>
      </taglib>
    Et dans ta jsp, tu codes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ taglib uri="/tags/c" prefix="c" %>
    Comme ça, le chemin d'accès à la taglib est codé en dur à un seul endroit, soit dans le web.xml, plutôt que dans toutes tes jsp.

    Idem pour toutes les tld que tu utilises dans tes jsp.
    Modératrice Java - Struts, Servlets/JSP, ...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/08/2006, 12h17
  2. [STRUTS] Recuperer valeurs d'une url enrichi ?
    Par Ev3rGlide dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/04/2005, 11h39
  3. [Struts][DynaActionForm et persistance des objets]
    Par jcos dans le forum Struts 1
    Réponses: 4
    Dernier message: 22/12/2004, 09h15
  4. [Struts][classe Action]Mettre un objet en parametre (suite)
    Par julienOriano dans le forum Struts 1
    Réponses: 6
    Dernier message: 16/06/2004, 15h54
  5. [ Struts ] recuperer une valeur dans une url?
    Par njac dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/06/2004, 14h24

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