因为添加 @Clear 导致 拦截器器无法生效

因为再control 上使用了    @Clear  注解导致拦截器失效


configInterceptor 中的配置 

/**
 * 配置全局拦截器
 */
@Override
public void configInterceptor(Interceptors me) {
    me.add(new ExceptionInterceptor() );
   
}


ExceptionInterceptor  代码 

import com.jfinal.aop.Clear;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;

 
public class ExceptionInterceptor implements Interceptor {
    private static final Logger log = LoggerFactory.getLogger(ExceptionInterceptor.class);

    @Override
    public void intercept(Invocation inv) {
        try {
 
            inv.invoke();
        } catch (Exception e) {
		   e.printStackTrace(); 
		
		// 自己做对异常进行处理  内容  略 
            
    }
 

}


Controller   中的内容  如果使用 了 @Clear 注解  就不到  ExceptionInterceptor  异常拦截器中了 

  
  // 如果    有@Clear 注解 则会跳过拦截器 , 导致配置的拦截器不生效 
 @Clear
 public class TestUserController extends   Controller  {
     public void index() {
	   int i =1/0 ;
	   }

 }


评论区

鼻涕刘o0

2020-05-21 14:14

那么你认为@Clear这个注解是做什么用的?

久伴轻尘

2020-05-21 14:25

https://jfinal.com/doc/4-4
看看这个你应该知道怎么做了

lyh061619

2020-05-21 16:43

@Clear()注解作用主要是用来清除方法上拦截器,默认不带参数默认清除所有方法上的拦截器,只想清理某一个拦截器写法:@Clear({xxx.class})即可。

JFinal

2020-05-21 17:29

马小酱

2020-05-22 10:15

勾选了保持登录导致我现在每次进入jfinal.com都不需要输入密码,这是一个安全性bug

热门分享

扫码入社