2013-04-25 61 views
1

我的JSF應用程序在頂層模板中有一個<ui:debug>標籤。我有一個將項目保存到數據庫的數據項目創建頁面。數據庫然後返回存儲在JSF閃存中的已保存項目。然後,我重定向到一個新頁面並顯示從閃光燈中檢索到的項目。當我查看該頁面,調試,顯示的網頁一NullPointerException,有時沒有堆棧跟蹤和其他時間還有類似(不注重具體行號的堆棧跟蹤。JSF ui:導致NullPointerException的調試

NullPointerException 
at com.sun.facelets.util.DevTools.writeVariables(DevTools.java:158) 
at com.sun.facelets.util.DevTools.writeVariables(DevTools.java:144) 
at com.sun.facelets.util.DevTools.debugHtml(DevTools.java:135) 
at com.sun.facelets.tag.ui.UIDebug.writeDebugOutput(UIDebug.java:92) 
at com.sun.facelets.tag.ui.UIDebug.encodeBegin(UIDebug.java:81) 
... 

如果我刪除了<ui:debug>標籤,然後成功地顯示我的網頁。是什麼原因造成的NullPointerException異常?的<ui:debug>標籤的工作

回答

1

部分是顯示所有的各種JSF範圍包括「閃光範圍」的內容。DevTools.writeVariables是一個幫助函數,用於將作用域中的對象轉換爲可讀取的內容以顯示在調試頁面中。 toString()來顯示對象。這是存儲在閃存的對象,推翻了toString()方法用下面的樣板代碼

@Override 
public String toString() { 
    //TODO: Supply implementation 
    return null 
} 

由於toString()被返回null,它以後引起NullPointerException。如果您正確實施toString(),則不會發生此錯誤。

相關問題