2009-08-19 12 views
0

これはSeamアプリケーションです。h:selectManyCheckBoxがNullPointerExceptionを取得する

HTML

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

バッキングBeanのOfficeCriteria:私はページをロードすると

private List<String> carrier; 

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

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

私はキャリア上のnullポインタ例外を取得します。私は間違って何をしていますか?

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 

答えて

0

OfficeCriteria.javaの行108は何ですか?あなたが参照しているものはnullです。あなたがそれを期待していないと思います。私が提案する何

+0

キャリアのプロパティは何ですか?しかし、それはもちろん、それはnullですので、Webページのブランドの新しいレンダリングです。すべてがnullです。この場合キャリアがnullであることがなぜ気になるのですか?それは本当に質問です。これは理にかなっていますか? –

+0

行108に実際のコードを貼り付けることはできますか?スタックトレースに基づいて、NullPointerExceptionがJSFのものではなくその行で発生しているように見えます。私もromaintazに空の配列リストにキャリアを初期化することは良いアイデアだろうと同意する必要があります。 – digitaljoel

0

あなたは空のリストを設定することである(とないヌル)プロパティキャリアのために:

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

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

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

答えはそのまま私の元のコードが動作するということです。

難易度(と私が残したもの)は、リスト内の要素を参照するデバッグ文でした。私は実際

:-)ライン108でを見て、BTW新しいリストでこれを初期化する提案した人に、私はすでに、いくつかのエラーを得た(私はできないことをしようとした提案者に感謝何を覚えているか)。

ありがとうございました。

関連する問題