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 :

Problème au niveau DataTable


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut Problème au niveau DataTable
    Bonsoir ,

    Au fait j'ai développé une page qui possède un panel qui contient des critères de recherche. Si le critère de recherche est valide j'affiche une ligne contenant les information (nom....)sinon j'affiche toute une liste.

    Mon problème se situe que lorsque j’exécute la page j'obtiens l'erreur suivante:

    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
    javax.servlet.ServletException: #{contactCtr.findListContact}: java.lang.NullPointerException
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
     
     
    cause mère 
     
    javax.faces.FacesException: #{contactCtr.findListContact}: java.lang.NullPointerException
    	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
    	javax.faces.component.UICommand.broadcast(UICommand.java:387)
    	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
    	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
    	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
    	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
    	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
    et voici la page ainsi que la methode :

    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
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:rich="http://richfaces.org/rich"
    	xmlns:a4j="http://richfaces.org/a4j">
    <head>
    </head>
    <body>
     
     
    			<br></br>
    			<br></br>
    			<center>
    				<b style="COLOR: #0080c0;">Consultation des Contacts</b>
    			</center>
    			<br></br>
    			<f:view>
    				<h:form>
    					<rich:panel>
    						<f:facet name="header">
    							<h:outputText value="Criteres de Recherche" style="" />
    						</f:facet>
    						<h:outputText value="" style="COLOR: #0000ff; FONT-WEIGHT: bold;" />
    						<h:panelGrid columns="2" style="FONT-WEIGHT: bold;">
    							<h:outputText value="Type de piece :" />
    							<h:selectOneMenu value="#{contactCtr.codTpceCnt}" d="true"
    								id="type_piece_cnt" style="height : 22px; width : 156px;">
    								<f:selectItem itemLabel="C" itemValue="C" />
    								<f:selectItem itemLabel="P" itemValue="P" />
    							</h:selectOneMenu>
    							<h:outputText value="Numere de piece :" />
    							<h:inputText value="#{contactCtr.numPieceCnt}" id="num_piece_cnt" />
    						</h:panelGrid>
    						<h:panelGrid columns="2">
    							<h:commandButton value="Quitter" action="quitter"
    								style="COLOR: #0000ff; FONT-WEIGHT: bold; width : 95px; height : 24px;" />
    							<h:commandButton id="buttonchercher" value="Chercher"
    								action="#{contactCtr.findListContact}"
    								style="COLOR: #0000ff; FONT-WEIGHT: bold; width : 95px; height : 24px;" />
    						</h:panelGrid>
    					</rich:panel>
    					<rich:dataTable value="#{contactCtr.ct}" var="contact">
     
    						<f:facet name="header">
    							<rich:columnGroup>
     
     
    								<h:column>
    									<h:outputText value="Nom" />
    								</h:column>
    								<h:column>
    									<h:outputText value="Prenom" />
    								</h:column>
    								<h:column>
    									<h:outputText value="Adresse" />
    								</h:column>
    								<h:column>
    									<h:outputText value="Numero de GSM" />
    								</h:column>
    								<h:column>
    									<h:outputText value="Type de piece" />
    								</h:column>
    								<h:column>
    									<h:outputText value="Numero de piece" />
    								</h:column>
    							</rich:columnGroup>
    						</f:facet>
    						<h:column>
    							<h:outputText value="#{contact.nomNomCnt}" />
    						</h:column>
    						<h:column>
    							<h:outputText value="#{contact.nomPreCnt}" />
    						</h:column>
    						<h:column>
    							<h:outputText value="#{contact.adrAdrCnt}" />
    						</h:column>
    						<h:column>
    							<h:outputText value="#{contact.numGsmCnt}" />
    						</h:column>
    						<h:column>
    							<h:outputText value="#{contact.codTpceCnt}" />
    						</h:column>
    						<h:column>
    							<h:outputText value="#{contact.numPieceCnt}" />
    						</h:column>
    					</rich:dataTable>
    				</h:form>
    			</f:view>
     
    </body>
    </html>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public void findListContact()
        {
        	if(getNumPieceCnt()=="")
    		{
    			List<Contact> cnts =ctDao.findallContact();
    			setCt(new ListDataModel(cnts));
    		}
    		else if(getNumPieceCnt()!="")
    		{
    		List<Contact> cnts = ctBus.recupererContactById(getNumPieceCnt());
    		setCt(new ListDataModel(cnts));
    		}	
        }

    J'ai besoin de votre aide s'il vous plait car je trouve pas la solution
    Merci

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getNumPieceCnt()==""
    euh tu sais que ce n'est pas comme ça qu'on teste l'égalité sur une chaine de caractères ? Cela se fait au moyen de la méthode "equals()". Exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getNumPieceCnt().equals("");
    en plus, si tu veux tester que le chaine est vide il vaut mieux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getNumPieceCnt().length(0);
    enfin, il faut que tu t'assure quet "getNumPieceCnt()" ne renvoie pas null.

    Ainsi je te propose d'inverser le test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!"".equals(getNumPieceCnt()))
    enfin, dernier point, es-tu sûr que "ctBus" et/ou "ctDao" ne sont pas null ?

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void findListContact()
        {
    if(org.apache.commons.lang.StringUtils.isBlank(getNumPieceCnt()))
    		{
    			List<Contact> cnts =ctDao.findallContact();
    			setCt(new ListDataModel(cnts));
    		}
    		else {
    		List<Contact> cnts = ctBus.recupererContactById(getNumPieceCnt());
    		setCt(new ListDataModel(cnts));
    		}	
        }
    Voila...

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    fxrobin,DevServlet Merci pour votre rèponse d'abord
    Au fait j'ai essayé les solutions que vous m'avez proposé mais dommage ça donne aucune solution
    fxrobin:les ctBus et ctDao ne sont pas null

  5. #5
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    il faut que tu trouves dans ta méthode l'objet qui est null et sur lequel tu déclenches une méthode (ça peut être dans des appels imbriqués).

    Ton erreur viens de là, cherche là.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    J'ai déjà essayé dans le passé mais ça pas marché je vais voir encore une fois !

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par ahmedpa Voir le message
    J'ai déjà essayé dans le passé mais ça pas marché je vais voir encore une fois !
    Peux tu mettre un point d'arret au début de ta méthode et redemarrer ton serveur en mode debug et faire du pas à pas pour voir où ça coince?

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    lorsque j'obtiens l'erreur ça se coince au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		List<Contact> cnts = ctBus.recupererContactById(getNumPieceCnt());

  9. #9
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Comment veux tu qu'on t'aide avec la ligne que tu viens de poster, ça coince, qu'est ce qui coince ? Tu sais faire du debuggage ou pas?

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Non

  11. #11
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    au pire, fait du debug avec System.out.println que tu places à différents endroits dans ton code pour voir ce qui est null.

    PS : j'en reviens pas d'écrire cela car c'est une mauvaise pratique de debug.

  12. #12
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par ahmedpa Voir le message
    lorsque j'obtiens l'erreur ça se coince au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		List<Contact> cnts = ctBus.recupererContactById(getNumPieceCnt());
    et t'es sûr que ctBus n'est pas null ?

    si c'est pas le cas, il faudra aller investiguer dans "recupererContactById()"

    peux-tu la montrer cette méthode ?

  13. #13
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par ahmedpa Voir le message
    Non
    C'est donc l'occasion de t'y mettre, ce tutoriel te montre avec des captures comment le faire ici On ne peut développer sans apprendre à debugger. Si tu bloques n'hesites pas à revenir vers nous.

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public List<Contact> recupererContactById(String critere) {
     
    		Session hibernateSession=hibernateutil.currentSession();
    		Criteria crit = hibernateSession.createCriteria(Contact.class);
    		Criterion c = Expression.eq("numPieceCnt", critere);
    		List<Contact> contacts = ctDAO.findByCriteria(Contact.class, c);
    		return contacts;
    	}

    et la methode finBycriterias est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sessionHibernate=(Session) hibernateutil.currentSession();
    		Criteria crit=sessionHibernate.createCriteria(Contact.class);
    		crit.add(Expression.eq("numPieceCnt", criteria));
    		List<Contact> ct=crit.list();
    		Contact contact=ct.get(0);
    		return contact;

  15. #15
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    au pire, fait du debug avec System.out.println que tu places à différents endroits dans ton code pour voir ce qui est null.

    PS : j'en reviens pas d'écrire cela car c'est une mauvaise pratique de debug.
    Personnellement je déconseille la pratique, car mine de rien on finit par en mettre partout et on oublie de les enlever avant de commiter. Il débute, donc autant lui faire partir sur de bonnes bases.

  16. #16
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    devServlet : Merci pour le tuto je vais voir

  17. #17
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Personnellement je déconseille la pratique, car mine de rien on finit par en mettre partout et on oublie de les enlever avant de commiter. Il débute, donc autant lui faire partir sur de bonnes bases.


    yes !

  18. #18
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    C'est bon j'ai trouvé la solution!!
    Merci pour vos aides aussi

  19. #19
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par ahmedpa Voir le message
    C'est bon j'ai trouvé la solution!!
    Merci pour vos aides aussi
    et c'était quoi ?

  20. #20
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Au fait j'ai trouvé l'objet qui est null est j'ai lui a donnée la méthode que je veux utilisé et ça marchait

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

Discussions similaires

  1. Probléme au niveau p:dataTable
    Par ahmedpa dans le forum JSF
    Réponses: 0
    Dernier message: 27/02/2013, 23h39
  2. [CSS] Problème au niveau de la résolution
    Par shukin dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 28/10/2005, 13h29
  3. [PPC][C#][SQL2000] Problème au niveau de donné controlé
    Par Roach dans le forum Windows Forms
    Réponses: 16
    Dernier message: 21/09/2005, 22h08
  4. problème au niveau de restore database
    Par Redouane dans le forum Administration
    Réponses: 2
    Dernier message: 07/09/2005, 11h49
  5. [DNS MX]Avec DynDNS.org, problème au niveau du MX
    Par Swoög dans le forum Développement
    Réponses: 9
    Dernier message: 24/08/2004, 22h00

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