Я ищу способы, как очистить код контроллера Grails. В разных контроллерах у меня более или менее одинаковая логика...
Есть ли предложенный способ заставить действия контроллера повторно использовать общий код?
--- решение ---
Все ответы на вопрос способствовали решению, которое мы реализовали.
Мы создали класс, который используется в наших контроллерах, используя подход Mixin. Один из методов, который раскрывает mixin, - это метод withObject. Этот метод принимает имя домена из контроллера и использует его в качестве основы для метода. Это поведение, конечно, можно переопределить!
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"
}
}
Итак, все ответы способствовали решению проблемы! Большое спасибо!