2012-09-12 75 views
0

我想從我的控制器通過一個集合來查看,像這樣:從控制器通過查看Grails的

def index() { 
    childInstance = Child.get(params.id) 

    if(childInstance){ 

     System.out.println("CHILD" + childInstance.firstname) 

     def messages = currentUserTimeline(childInstance) 
      [profileMessages: messages, childInstance: childInstance] 
    } 
    else{ 
    def messages = currentUserTimeline(null) 
     [profileMessages: messages] 
     System.out.println("ALL " + messages) 
    } 
} 

的作品是否但是其他講解員發送profileMessages爲空對象。 如果我添加

render template: 'profileMessages', collection: messages, var: 'profileMessage' 

給別人這工作,但我想通過一切的視圖和控制器不渲染。

視圖

我使用:

<g:render template="profileMessages" collection="${profileMessages}" var="profileMessage"/> 

任何想法,爲什麼當發送到視圖它工作的,如果,而不是在別的嗎? FYI我已經添加

[profileMessages: messages, childInstance: null] 

到別的沒有運氣和空是允許的,確實在

currentUserTimeline(null) 

因爲

render template: 'profileMessages', collection: messages, var: 'profileMessage' 

工程工作。

回答

2

帶模型的地圖必須是塊中的最後一個命令,因此請將System.out.println()移到地圖上方。

而且它也可以幫助,如果你使用:

return [ profileMessage: message ] 

BTW ...使用Log4j代替的System.out.println ;-)