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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 !

+ 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