0

私はコントローラーからコレクションを渡して、次のように表示しようとしています。

   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は機能しますが、else docentは、profileMessagesをnullオブジェクトとして送信します。追加した場合

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

他の人にはこれは機能しますが、すべてをビューに渡し、コントローラーでレンダリングしたくありません。

私が使用しているビューで:

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

ビューに送信されたときに、ifで機能し、elseでは機能しない理由はありますか?参考までに追加しました

[profileMessages: messages, childInstance: null]

運がなく、nullが許可されており、

currentUserTimeline(null)

なぜなら

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

動作します。

4

1 に答える 1

2

モデルを含むマップはブロック内の最後のコマンドでなければならないため、System.out.println() をマップの上に移動します。

また、次を使用すると役立ちます。

return [ profileMessage: message ]

ところで... System.out.printlnの代わりにlog4jを使用してください;-)

于 2012-09-12T11:57:15.103 に答える