2012-08-30 14 views
12

yo llamo un método de índice dentro de un controladorsi las declaraciones en un SGP en 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") 
    } 
} 

en la página gsp que tienen

${childInstance.firstname} 

Qué si paso un childinstance esto está muy bien, pero si no puedo obtener un 500 debido a un puntero nulo hay una manera de que pueda hacer una sentencia if en un gsp, así que puede hacer esto

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

Respuesta

35

Puede utilizar g:if, g:elseif y 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> 
3
<g:if test="${ childInstance }"> 
    ${ childInstance.firstName } 
</g:if> 
4

Una solución más concisa que <g:if> es utilizar el operador seguro-desreferenciar ?

${childInstance?.firstName} 

mostrará el primer nombre si childInstance no es null y no muestra nada si es nulo.

Cuestiones relacionadas