我正试图从我的控制器传递一个集合,如下所示:
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)
}
}
if if有效,但是其他人讲述了它将profileMessages作为空对象发送。 如果我添加
render template: 'profileMessages', collection: messages, var: 'profileMessage'
对其他人有效,但我想将所有内容传递给视图,而不是在控制器中呈现它。
在我正在使用的视图中:
<g:render template="profileMessages" collection="${profileMessages}" var="profileMessage"/>
任何想法为何在发送到视图时在if中工作而不在其他工作? 仅供参考我已添加
[profileMessages: messages, childInstance: null]
到没有运气的其他地方,并允许null,并且在
中有效currentUserTimeline(null)
因为
render template: 'profileMessages', collection: messages, var: 'profileMessage'
作品。
答案 0 :(得分:2)
带有模型的地图必须是块中的最后一个命令,因此请将System.out.println()移到地图上方。
如果你使用它也会有所帮助:
return [ profileMessage: message ]
BTW ...使用log4j代替System.out.println; - )