У меня есть контроллер, который наследуется от класса с beforeInterceptor
.Как вы связываете друг с другом доИнтерцепторов?
Вот мой базовый класс.
class FooBase {
def beforeInterceptor = [action: {parentInterceptor()}]
def parentInterceptor() {
render("Snarge")
}
}
Это версия контроллера, которая не работает.
class BrokenController extends FooBase
{
def beforeInterceptor = [action: {childInterceptor()}]
def childInterceptor() {
super.beforeInterceptor.action.call()
render("Bar")
}
def index = {
render("Foo")
}
}
Вот версия, что делает РАБОТУ
class WorkingController extends FooBase
{
def beforeInterceptor = {
super.beforeInterceptor.action.call()
render("Bar")
}
def index = {
render("Foo")
}
}
Когда я звоню индекс на WorkingController
, я получаю выход SnargeBarFoo
. Когда я называю индекс на BrokenController
, я получаю IllegalAccessError
Я полагаю, что у меня есть версия, которая работает, поэтому мой вопрос больше о том, что здесь происходит? Почему одна версия может обращаться к родительскому классу из дочернего класса, а другая не может?
Используемый прецедент, который я ищу, позволяет использовать функции перехватчика с функциональностью except
. Это требует возможности перехватывать перехватчики, когда они реализуются с использованием карты.
У вас есть решение этой проблемы? – arvind