Подтвердить что ты не робот

Если заявления в GSP в 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 из-за нулевого указателя, есть способ, которым я могу выполнить оператор if в gsp, поэтому я могу это сделать

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

Ответ 1

Вы можете использовать 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>

Ответ 2

Более кратким решением, чем <g:if>, является использование оператора безопасного разыменования ?

${childInstance?.firstName}

отобразит первое имя, если childInstance не является нулевым и ничего не отображает, если оно равно null.

Ответ 3

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