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 这很好,但如果我不通过一个空指针我得到一个 500 有没有办法我可以在 gsp 中做一个 if 语句所以我可以做到这一点

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

3 回答 3

48

您可以使用g:if,g:elseifg: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}

如果不为空,将显示名字,如果childInstance为空,则不显示任何内容。

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