2011-10-31 49 views
3

在運行與PrimeFaces' <p:wizard> component的應用程序,我收到以下錯誤:顯示java.lang.NullPointerException在java.io.PrintWriter.write

java.lang.NullPointerException 
    at java.io.PrintWriter.write(PrintWriter.java:473) 
    at com.sun.faces.application.view.WriteBehindStateWriter.write(WriteBehindStateWriter.java:127) 
    at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.write(HtmlResponseWriter.java:666) 
    at org.primefaces.component.wizard.WizardRenderer.encodeStepStatus(WizardRenderer.java:236) 
    at org.primefaces.component.wizard.WizardRenderer.encodeMarkup(WizardRenderer.java:158) 

這是怎麼造成的,我怎麼能解決這個問題?

回答

2

你顯然使用PrimeFaces 3.0仍處於非最終級。這個顯然是PrimeFaces中的一個bug。您需要將它報告給PF夥伴,以便他們能夠修復它。

我有我自己也經常看到這個愚蠢的異常,當一個明顯的強制屬性是從一些PrimeFaces 3.0組件丟失。例如,

<p:selectOneMenu> 
    <f:selectItem itemValue="foo" /> 
</p:selectOneMenu> 

上述工程與<h:selectOneMenu>完美的罰款。項目值已被用作組件的值和標籤。這也是如何指定<f:selectItem>工作。但是,PrimeFaces <p:selectOneMenu>預計itemLabel屬性總是出於某種原因,並且不通過事先直接檢查響應寫入器來傳遞null屬性值,而這反過來又引發了一個完全令人困惑的NullPointerException,這正是您得到的。添加itemLabel屬性解決它:

<p:selectOneMenu> 
    <f:selectItem itemValue="foo" itemLabel="foo" /> 
</p:selectOneMenu> 

我不知道在<p:wizard>任何類似的問題(我從來沒有用過它),但是你可能想嘗試複製的showcase example 1中的代碼:1然後在此基礎上進一步構建,而不是從頭創建沒有任何指導。

相關問題