具有基类的Grails声明性控制器异常处理

时间:2015-01-10 08:02:48

标签: grails inheritance controller

我试图通过让所有Grails控制器继承自“BaseController”来避免代码重用。在这个抽象类中,每次继承类抛出这样的异常时,我都会定义一个我想调用的方法(请参阅http://grails.org/doc/latest/guide/single.html#controllerExceptionHandling了解为什么会发生这种情况):

import com.mypackage.core.BadRequestException

abstract class BaseController {

    def badRequestException(BadRequestException e) {
        render status: 400, text: e.getMessage()
    }
}

然后,在我继承的类中,我从控制器操作方法执行以下操作:

def changePassword() {
    ..
    if (!password.equals(passwordConfirm)) {
        throw new BadRequestException("Password and password confirm did not match.")
    }
    ..
}

为什么不会调用超类的badRequestException方法?如果我将该方法移动到继承控制器(即抛出异常的控制器)本身,它可以正常工作。

谢谢!

0 个答案:

没有答案