18

コントローラー内でインデックス メソッドを呼び出す

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

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

        def messages = currentUserTimeline()
            [profileMessages: messages,childInstance:childInstance]
    } else {
        def messages = currentUserTimeline()
            [profileMessages: messages]

        System.out.println("ALL")
    }
}

私が持っているgspページで

${childInstance.firstname}

childInstance を渡せば問題ありませんが、そうしないと null ポインターが原因で 500 が返されます gsp で if ステートメントを実行できる方法があるので、これを実行できます

if(childInstance){
   ${childInstance.firstname}
} else {
   All
}
4

3 に答える 3

48

g:if、、g:elseifおよびを使用できますg:else

<g:if test="${name == 'roberto'}">
    Hello Roberto!
</g:if>
<g:elseif test="${name == 'olga'}">
    Hello Olga!
</g:elseif>
<g:else>
    Hello unknown person!
</g:else>
于 2012-08-30T16:00:38.923 に答える
5

<g:if>安全な逆参照演算子を使用するよりも簡潔な解決策?

${childInstance?.firstName}

が null でない場合は名を表示し、childInstancenull の場合は何も表示しません。

于 2012-08-30T19:28:10.353 に答える
3
<g:if test="${ childInstance }">
    ${ childInstance.firstName }
</g:if>
于 2012-08-30T15:46:43.077 に答える