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 :

NullPointerException avec UIData


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 210
    Par défaut NullPointerException avec UIData
    Bonjour,

    je suis en train de faire un tuto sur JSF :
    http://schmitt.developpez.com/tutori.../introduction/

    et au chapitre 8.2 Exemple d'utilisation du binding j'ai cette erreur :
    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
     
    java.lang.NullPointerException
            at javax.faces.component.UIData.restoreDescendantComponentStates(UIData.java:325)
            at javax.faces.component.UIData.restoreDescendantComponentStates(UIData.java:337)
            at javax.faces.component.UIData.setRowIndex(UIData.java:276)
            at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:293
    )
            at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:137)
     
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:543)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:239)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)
            at org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:423)
            at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:380)
            at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
            at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
            at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
            at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:364)
            at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:219)
            at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
            at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:786)
            at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:431)
            at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
            at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:113)
            at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
            at org.mortbay.jetty.Server.handle(Server.java:325)
            at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:533)
            at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:870)
            at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:657)
            at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
            at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:391)
            at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:421)
            at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)
    en cliquant sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:commandButton value="Supprimer les clients" action="#{bank.removeSelectedCustomers}" />
    Voici le code de 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
    public void removeSelectedCustomers() {
    		System.out.println("Customers 1 : "  + this.customers.size());
    		int size = this.dataTable.getRowCount();
    		List selectedCustomers = new ArrayList();
    		for (int i = 0; i < size; i++) {
    			this.dataTable.setRowIndex(i);
    			if (this.checkbox.isSelected()) {
    				selectedCustomers.add(this.customers.get(i));
    			}
    		}
    		this.customers.removeAll(selectedCustomers);
    		System.out.println("Customers 2 : "  + this.customers.size());
    	}
    Du coup ayant suivi le tuto a la lettre enfin j'espère je vais revérifier, je pige pas trop ce qui m'arrive ...

    merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 210
    Par défaut
    J'ai finalement trouvé une solution, mais je ne saurais l'expliquer :

    en fait j'ai repositionné le curseur à -1 et ca fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void removeSelectedCustomers() {
    		System.out.println("Customers 1 : "  + this.customers.size());
    		int size = this.dataTable.getRowCount();
    		List selectedCustomers = new ArrayList();
    		for (int i = 0; i < size; i++) {
    			this.dataTable.setRowIndex(i);
    			if (this.checkbox.isSelected()) {
    				selectedCustomers.add(this.customers.get(i));
    			}
    		}
    		this.dataTable.setRowIndex(-1);
    		this.customers.removeAll(selectedCustomers);
    		System.out.println("Customers 2 : "  + this.customers.size());
    	}
    Mais si quelqu'un pouvais m'expliquer pourquoi ce serais cool

    merci

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Admettons que tu aies une table avec 5 éléments.
    Tu en as 2 sélectionnés.
    Ton code va supprimer ces 2 éléments. La table ne contiendra alors plus que 3 éléments.
    Or tu as dans la boucle for le code this.dataTable.setRowIndex(i);
    Ce qui signifie que l'index - à savoir l'élément actif dans ta table - sera de 4.
    Or cet index est supérieur au nombre d'éléments désormais contenus dans la table.

    Je pense que l'erreur vient de là !
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. [EJB3 Entity] NullPointerException avec createNamedQuery()
    Par Dynamic dans le forum Java EE
    Réponses: 4
    Dernier message: 23/01/2009, 12h00
  2. java.lang.NullPointerException avec sum
    Par newmar dans le forum Hibernate
    Réponses: 2
    Dernier message: 03/06/2008, 16h20
  3. NullPointerException avec des ArrayList
    Par Mchupakabra dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 08/04/2008, 21h48
  4. nullPointerException avec JBoss et Log4j
    Par ]matmat[ dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 03/05/2007, 17h33
  5. NullPointerException avec Graphics?
    Par charaf dans le forum Graphisme
    Réponses: 7
    Dernier message: 20/06/2006, 11h25

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