如果Grails中的GSP语句

Sag*_*ael 15 grails

我在控制器中调用索引方法

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")
    }
}
Run Code Online (Sandbox Code Playgroud)

在gsp页面中我有

${childInstance.firstname}
Run Code Online (Sandbox Code Playgroud)

如果我传递一个childInstance这很好但是如果我不这样做因为空指针而得到一个500是有一种方法我可以在gsp中做一个if语句所以我可以这样做

if(childInstance){
   ${childInstance.firstname}
} else {
   All
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*lea 41

你可以使用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>
Run Code Online (Sandbox Code Playgroud)


Dón*_*nal 5

<g:if>使用安全取消引用运算符更简洁的解决方案?

${childInstance?.firstName}
Run Code Online (Sandbox Code Playgroud)

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