如果Grails中的GSP语句

时间:2012-08-30 15:43:48

标签: 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")
    }
}

在gsp页面中我有

${childInstance.firstname}

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

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

3 个答案:

答案 0 :(得分:40)

您可以使用g:ifg: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>

答案 1 :(得分:5)

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

${childInstance?.firstName}
如果childInstance不为空,

将显示第一个名称,如果为空,则显示任何内容。

答案 2 :(得分:3)

<g:if test="${ childInstance }">
    ${ childInstance.firstName }
</g:if>