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

JSF Java Discussion :

jsf:Pb dataTable et requete sql


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 130
    Par défaut jsf:Pb dataTable et requete sql
    Bonjour,
    Dans le cadre d'une application de gestion, j'ai une dataTable dans laquelle je charge la liste des commandes à partir d'une liste.
    Dans cette DataTable j'integre un bouton pour visualiser les details de la commande de la ligne correspondante dans une fenetre popup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <h:dataTable value="{beanDetailCommande.dataModel}" var="commande">
    .
    .
    .
    <h:column>
    <f:facet name="header">
    <h:outputText value="Details"/>
    </f:facet>
    <h:commandButton value="Voir Details" action="beanDetailCommande.getDetails}"></h:commandButton>
    </h:column>
     
    </h:dataTable>
    l'action correspondant au click du bouton declenche une methode getDetails() qui rend une liste des lignes(detail) de la commande :

    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
     
     
    public List getDetails()
      if (details==null) details=new ArrayList();
            try {
     
                Commande commande= (Commande) dataModel.getRowData();
     
     
                Class.forName("org.postgresql.Driver");
                Connection conX = DriverManager.getConnection("jdbc:postgresql://localhost:5432/gestion","postgres","postgres");
                PreparedStatement ps=conX.prepareStatement("select * from \"gestion\".\"detailscommande\" where commande_id=?");
                ps.setInt(1,commande.getCommande_id());
     
                ResultSet rs=ps.executeQuery();
     
                while (rs.next()) {
                    Detailscommande dc=new Detailscommande(rs.getInt(1),rs.getString(8),rs.getString(9),rs.getDate(2),rs.getString(3),rs.getString(4),0,new Integer(rs.getInt(5)),rs.getString(7),rs.getInt(6),"");
                    details.add(dc);
                }
     
                conX.close();
            } catch(SQLException sle) {
                return null;
            }
     
            catch(ClassNotFoundException cnfe) {
                return null;
            }
     
            return details;
    }
    Dans la page jsp qui visualise le detail de la commande j'ai une dataTable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <h:dataTable value="#{beanDetailCommande.details}" var="detailscommande">
    .
    .
    .
    </h:dataTable>
    Le probleme c que la requete sql ne marche pas(NullPointerException rendu) sauf si je remplace le deuxieme argument de l'instruction ps.setInt(1,commande.getCommande_id()); par une constante par exemple ps.setInt(1,1) ça me donne le detail de la commande avec le id=1 sur toutes les lignes de ma datatable et ainsi de suite pour les autres id.
    Merci.

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    C'est que ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dataModel.getRowData();
    renvoi null. Quel est le type de dataModel?

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 130
    Par défaut
    j'ai private DataModel dataModel=new ListDataModel();
    Mais je crois pas que le probleme se pose à ce niveau car si j'essaye de verifier que commande.getCommande_id() renvoie une valeur avant l'execution de la requete je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JOptionPane.showMessageDialog(null,String.valueOF(commande.getCommande_id(),"titre",JOptionPane.INFORMATIONMESSAGE);
    et en effet je vois ma valeur affichée correctement dans la boite de dialogue.

    Merci.

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Le NullPointerException il est sur quelle ligne?

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 130
    Par défaut
    Salut,
    Le message est affiché dans la fenetre de navigation detailscommande.jsp du type:

    Error getting property 'details' from bean of type BeanDetailCommande......etc

    Merci.

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Si tu peux essaye de nous mettre la trace en entier.
    Le problème doit venir d'une erreur dans ta requete qui entraine une SQLException laquelle entraine un return null. Il faudrait que tu affiche le détail de cette erreur pour voir d'où vient le problème. Elle sera affichée dans la console de ton serveur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    } catch(SQLException sle) {
    sle.printStackTrace();
                return null;
            }

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/03/2013, 20h05
  2. JSF:PB DataTable et requete sql
    Par kam81 dans le forum JSF
    Réponses: 0
    Dernier message: 02/11/2008, 11h15
  3. Réponses: 3
    Dernier message: 10/09/2007, 20h31
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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