2012-01-03 15 views
18

È necessario il reso? Diciamo che è nel bel mezzo di un'azione.Devo restituire "render" in Grails?

render(contentType:'text/json', text: ['success': true] as JSON)  
return 
+0

@Don - Qual è la differenza tra la mia e la tua modifica? – RyanLynch

+0

funzionalmente, potrebbero essere uguali, ma penso che sia molto più facile da leggere ora. Se non sei d'accordo, sentiti libero di ripristinare il mio cambiamento –

risposta

27

Se non si torna, alcun codice dopo verrà eseguito anche render, che spesso non è ciò che si vuole, ad esempio,

def someAction = { 

    if (someCondition) { 
    render view: 'success' 
    // if we don't return execution would fall through to the code below 
    return 
    } 

    log.error 'something went wrong' 
    render view: 'error' 
} 

Naturalmente, se si utilizza questo stile, invece, non c'è bisogno di tornare

def someAction = { 

    if (someCondition) { 
    render view: 'success' 

    } else {  
    log.error 'something went wrong' 
    render view: 'error' 
    } 
} 

Se un'azione ha un solo punto di uscita, non c'è bisogno di tornare dopo render

def someAction = { 
    render view: 'success' 
} 

Ricorda che il codice dopo render verrà eseguito se non si ritorna.