Sto cercando dei modi su come pulire il mio codice del controller Grails. In vari controller i più o meno ho la stessa logica ..Rendere i controller Grails più ASCIUTTI?
- ottenere l'oggetto
- verifica se esiste
- ecc ..
c'è un modo suggerito a fare azioni di controllo riutilizzare il codice comune?
--- --- soluzione
Tutte le risposte alla domanda hanno contribuito alla soluzione che abbiamo implementato.
Abbiamo creato una classe che viene utilizzata nei nostri controller utilizzando l'approccio Mixin. Uno dei metodi che espone il mixin è il metodo withObject. Questo metodo prende il domainname dal controller e lo usa come base per il metodo. Questo comportamento può essere sovrascritto, ovviamente!
def withObject(object=this.getClass().getName()-"Controller", id="id", Closure c) {
assert object
def obj = grailsApplication.classLoader.loadClass(object).get(params[id])
if(obj) {
c.call obj
} else {
flash.message = "The object was not found"
redirect action: "list"
}
}
Quindi tutte le risposte hanno contribuito alla soluzione! Molte grazie!
Modifica la domanda e aggiungi un esempio del tuo codice. Al momento la domanda è molto vaga. – ordnungswidrig