2012-09-12 129 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 ;-)