有三个Controller,分别为BaseController,UserController,CategoryController,UserController和CatgoryController继承自BaseController
在UserController上配置了class拦截器UserInterceptor,在BaseController上配置了class拦截器BaseInterceptor
config中配置了全局拦截器GlobalInterceptor
疑惑如下:
UserController的拦截器列表中只有GlobalInterceptor和UserInterceptor,没有BaseInterceptor
CategoryController的拦截器列表有GlobalInterceptor和BaseInterceptor。
是jfinal就这样设计的吗,子类的class拦截器会覆盖父类的class拦截器,还是?
临时的解决方案是,把BaseInterceptor提升为全局拦截器,然后在拦截器中通过path来决定是否做相应处理。这样拦截器的意义就变了。而且对path的判断会很麻烦而且容易出错。
前面讲的是 public class MyClass 上声明的 @Before,同理 method 上也是一样的道理。