2014-10-03 43 views
0

我試圖找到節點的孩子的名單,但我每次通過該節點的時間我得到NullPointerException空指針異常運行時,環路GSP頁

<g:each in="${nodes}" var="node"> 
    <g:if test="${node.parent == null }"> 

     ${node.id }-${node.label } //This works perfectly 

     <g:each in="${Node.findAllByParent(node)}" var="n"> 
      ${n.label} 
     </g:each> 
    </g:if> 
</g:each> 

類的樣子:

class Node {  
    String nodeId 
    String label  
    Node parent  
} 

即使節點確實包含某些信息,我也會在空對象上獲取NullPointerException方法findAllByParent

回答

4

我期待Node是在一個包,如果它是你要麼需要進口增加了GSP的頂部...

<% import com.mypackage.Node %> 

或者完全限定的參考...

<g:each in="${com.mypackage.Node.findAllByParent(node)}" var="n"> 

您真的不應該從GSP開始查詢,但這是一個單獨的問題。上面的一個應該會讓你的錯誤消失。

+0

問題是當編譯器看到'Node'時,沒有看起來像變量引用的導入語句。由於'Node'變量尚未初始化,因此它將爲空,因此您在空引用上調用'findAllByParent'。如果您完全限定了類名或添加了導入,那麼編譯器將知道'Node'不是一個變量引用,而是一個'Class'引用。 – 2014-10-03 13:01:35

+0

非常感謝。這工作! – krs8785 2014-10-03 13:09:19