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

Taglibs Java Discussion :

[Débutant] Error looking up property "Id" in objet type "Data" [DisplayTag]


Sujet :

Taglibs Java

  1. #1
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 100
    Points : 80
    Points
    80
    Par défaut [Débutant] Error looking up property "Id" in objet type "Data"
    Bonjour à tous,

    J'ai une servlet qui doit alimenter ma source de données à partir d'une requete SQL dont voici le code actuel :

    Code JAVA : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    package com.servlet.test;
     
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import oracle.jdbc.pool.OracleDataSource;
     
    public class testtest extends HttpServlet{
     
    	public void doGet(	HttpServletRequest request, 
    			HttpServletResponse response)
    			throws IOException, ServletException{
     
    	/* PARAMETRI DI CONNESSIONE */
    	String login = "LOGIN";
    	String password = "PASSWORD";
    	Connection connexion = null;
    	ResultSet rs = null;
     
    	List<Data> liste = new ArrayList<Data>();   
        HttpSession httpSession = request.getSession();   
     
    	/* CREAZIONE DATASOURCE */
    	OracleDataSource OracleDS;
     
     
    	/* CONNESSIONE */ 
    	try {
     
    		OracleDS = new OracleDataSource();
    		OracleDS.setURL("jdbc:oracle:thin:@xxx.xxx.xx.it:1521/ORCL");
     
    		/* TIPO CONNESSIONE */
    		OracleDS.setNetworkProtocol("tcp");
    		/* LOGIN + PASSWORD */ 
    		OracleDS.setUser(login);
    		OracleDS.setPassword(password);
    		connexion = OracleDS.getConnection();
    		connexion.setAutoCommit(false);
    		System.out.println("URL : "+OracleDS.getURL());
     
    		Statement stmt = connexion.createStatement();
     
    		rs = stmt.executeQuery("SELECT NUMERO_CLIENT, NOM, PRENOM FROM CLIENT");
    		ResultSetMetaData rsmd = rs.getMetaData();
     
     
    	    	while (rs.next()) {
     
     
    	    		System.out.println(rs.getInt("NUMERO_CLIENT"));
    	    		System.out.println(rs.getString("NOM"));
    	    		System.out.println(rs.getString("PRENOM"));
     
    	    		liste.add(new Data(rs.getInt("NUMERO_CLIENT"), rs.getString("NOM"),rs.getString("PRENOM")));
     
    	    	}
     
    	    	httpSession.setAttribute("liste", liste);   
    	        RequestDispatcher dispatcher = request   
    	                .getRequestDispatcher("/page.jsp");   
     
    	    	dispatcher.forward(request, response);
     
    	    if(stmt !=null)
    	    {
    	    	try{stmt.close();
    	    	}
    	    	catch(Exception e){
    	    		e.printStackTrace();
    	    		}
    	    }
     
    	}
    	catch(Exception x){
    		System.out.println("ERROR : "+ x);
     
    	}
     
     
    }
     
    public void doPost(	HttpServletRequest request, 
    		HttpServletResponse response)
    		throws IOException, ServletException{
                //Nous invoquons la méthode doGet avec les paramètres reçu par la méthode doPost
    	doGet(request, response);		
    }	
    }


    Data représente les 3 malheureux champs que je voudrai afficher pour le moment (car il y en a bien plus, en fait).

    Code JAVA : 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
    39
    40
    41
    package com.servlet.test;
     
    import java.io.Serializable;
     
    public class Data implements Serializable {
     
    	private int Id;
    	private String Nom;
    	private String Prenom;
     
    	public Data(int Id, String Nom, String Prenom){
    		this.Id = Id;
    		this.Nom = Nom;
    		this.Prenom = Prenom;
    	}
     
    	public int getId(){
    		return Id;		
    	}
     
    	public void setId(int Id){
    		this.Id = Id;		
    	}
     
    	public String getNom(){
    		return Nom;		
    	}
     
    	public void setNom(String Nom){
    		this.Nom = Nom;		
    	}
     
    	public String getPrenom(){
    		return Prenom;		
    	}
     
    	public void setPrenom(String Prenom){
    		this.Prenom = Prenom;		
    	}
     
    }

    Je fais ensuite l'affichage de mon tableau dans ma JSP, comme ceci :

    Code JSP : 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
    <%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
        pageEncoding="ISO-8859-1"%>  
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>TABLEAU DANS UNE JSP</title>
    </head>
    <body>
     
    <display:table name="sessionScope.liste" pagesize="15" sort="liste">  
    	<display:column property="Id" title="ID" />
          	<display:column property="Nom" title="Nom"/>
        	<display:column property="Prenom" title="Prenom"/> 
     
    </display:table> 
     
    </body>
    </html>

    Dans ma console, je peux voir que tout se passe bien dans ma Servlet (requete et ajout). Mais il semble qu'il ne trouve pas mes champs de la classe Data.

    Voici la trace de l'erreur :

    INFO [STDOUT] ERROR : org.apache.jasper.JasperException: javax.ser
    vlet.ServletException: javax.servlet.jsp.JspException: Exception: [.LookupUtil]
    Error looking up property "Id" in object type "com.servlet.test.Data". Cause: Unknown property 'Id' on class 'class com.servlet.test.Data'

    Etrange... je me tire les cheveux

    J'ai grand besoin de vos conseils experts

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 100
    Points : 80
    Points
    80
    Par défaut
    Hey,

    j'ai trouvé le meme problème ici : http://www.developpez.net/forums/d27...mple-personne/

    Problème auquel il avait été dit de bien s'assurer que la classe a des getters et setters. C'est mon cas, pourtant.......

    Je ne comprends vraiment pas ce qu'il se passe.

    Au secours

  3. #3
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 100
    Points : 80
    Points
    80
    Par défaut
    Bonjour à tous (surtout à moi, en fait...)

    un nouveau détail (étrange).

    j'ai essayé de récupérer mes données d'une autre maniére :

    Code JSP : 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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.ArrayList" %>
    <%@ page import="com.servlet.test.*" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>TABLEAU RESULTAT SQL</title>
    </head>
    <body>
    <% ArrayList<Data> listeData = (ArrayList<Data>)session.getAttribute("liste");%>
     
     
    <% for (int i=0; i<listeData.size();i++) { %>
     
    	<table>
    		<tr><td>Login : <%=listeData.get(i).getId()%></td></tr>
    		<tr><td>Nom : <%=listeData.get(i).getNom()%></td></tr>
    		<tr><td>Pr&eacute;nom : <%=listeData.get(i).getPrenom()%></td></tr>
     
    	</table>
     
    <br><br>
    <%} %>
    </body>
    </html>

    et ça marche! Mais j'ai vraiment besoin d'utiliser DisplayTag (ergonomie, fonctionnalités, etc...)

    donc, il pourrait y avoir un soucis avec name="sessionScope.liste" ?

    Si quelqu'un passe par ici et connait un peu le sujet, je prends!

    merci

  4. #4
    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
    Un JavaBean doit respecter certaines conventions de nommage Java et notamment celle concernant les noms des propriétés qui doivent être en minuscules sauf la première lettre de chaque mot à partir du deuxième.

    Donc, dans la classe Data et dans la jsp, il faut tout simplement modifier les propriétés Id, Nom et Prenom en id, nom et prenom.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 100
    Points : 80
    Points
    80
    Par défaut
    Je dormais mal depuis 2 jours, tu viens de m'enlever une belle épine du pied!
    ça marche, je suis tellement content

    Je savais qu'il était bien mieux d'écrire les noms de variables en minuscule mais comme je faisais référence à ces variables aussi avec une majuscule, je n'avais pas pensé à ça

    merci mille fois

    promis je n'écrirais plus jamais en majuscule


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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/10/2011, 11h25
  2. [DisplayTag] Error looking up property "nom" in objet type "mysample.Personne"
    Par slyv dans le forum Taglibs
    Réponses: 3
    Dernier message: 02/03/2011, 17h53
  3. Réponses: 26
    Dernier message: 24/03/2006, 13h44
  4. [VB]probleme double quote dans une ressource de type string
    Par JulienCEA dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/02/2006, 12h38

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