2009-08-19 6 views
0

Ceci est une application Seam.h: selectManyCheckBox obtient NullPointerException

HTML

<h:selectManyCheckbox value="#{officeCriteria.carrier}"> 
    <f:selectItem itemValue="ATT" itemLabel="ATT" /> 
    <f:selectItem itemValue="VZB" itemLabel="VZB" /> 
</h:selectManyCheckbox> 

soutenant OfficeCriteria haricot:

private List<String> carrier; 

public List<String> getCarrier() { 
    return carrier; 
} 

public void setCarrier(List<String> carrier) { 
    this.carrier = carrier; 
} 

Quand je charge la page je reçois une exception de pointeur nul sur un support. Qu'est-ce que je fais mal?

2:10,963 ERROR [viewhandler] Error Rendering View[/ONDSearchPage.xhtml] 
javax.faces.FacesException: javax.el.ELException: /ONDSearchPage.xhtml @264,81 value="#{officeCriteria.carrier}": Error reading 'carrier' on type dne.nmt.ond.model.OfficeCriteria_$$_javassist_seam_6 
    at javax.faces.component.UIOutput.getValue(UIOutput.java:187) 
    at com.sun.faces.renderkit.html_basic.MenuRenderer.getCurrentSelectedValues(MenuRenderer.java:593) 
    at com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.encodeEnd(SelectManyCheckboxListRenderer.java:117) 
    .... 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: javax.el.ELException: /ONDSearchPage.xhtml @264,81 value="#{officeCriteria.carrier}": Error reading 'carrier' on type dne.nmt.ond.model.OfficeCriteria_$$_javassist_seam_6 
    at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76) 
    at javax.faces.component.UIOutput.getValue(UIOutput.java:184) 
    ... 95 more 
Caused by: java.lang.NullPointerException 
    at dne.nmt.ond.model.OfficeCriteria.getCarrier(OfficeCriteria.java:108) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    ..... 
    at org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53) 
    at org.jboss.el.parser.AstValue.getValue(AstValue.java:67) 
    at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) 
    at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) 
    ... 96 mor 

Répondre

0

Qu'est-ce qu'une ligne OfficeCriteria.java 108? Quelque chose que vous référencez là est nul, et je suppose que vous ne vous attendez pas à ce que ce soit.

+0

Ce qui est nul est la propriété du transporteur. Mais c'est un tout nouveau rendu d'une page web, donc bien sûr c'est nul. Tout est nul. Pourquoi se soucie-t-il dans ce cas que le transporteur est nul? C'est vraiment la question. Est-ce que ça a du sens? –

+0

pouvez-vous coller le code réel à la ligne 108? Sur la base de la trace de la pile, il semble que l'exception NullPointerException se produise sur cette ligne, et non dans le contenu JSF. Je serais également d'accord avec romaintaz que l'initialisation de transporteur à une liste de tableau vide serait une bonne idée. – digitaljoel

0

Ce que je suggère est que vous définissez une liste vide (et non nulle) pour la propriété porte:

private List<String> carrier = new ArrayList<String>(); 

public List<String> getCarrier() { 
     return carrier; 
} 

public void setCarrier(List<String> carrier) { 
     this.carrier = carrier; 
} 
0

La réponse est que mon code d'origine fonctionne comme il est. La difficulté (et ce que j'ai laissé de côté) était une instruction de débogage qui faisait référence à un élément de la liste. Merci à la personne qui a suggéré que j'ai effectivement regarder à la ligne 108. :-)

Et BTW à la personne qui a suggéré d'initialiser cela avec une nouvelle liste, je l'avais déjà essayé et j'ai eu une erreur (je ne peux pas souvenez-vous de quoi).

Merci pour l'aide.

Questions connexes