拦截器中能加入参数吗?我有2个拦截器大部分代码一样,想写一个,在里面通过参数判断不同的处理。我大概的想法是:
在拦截器的注解上面,是否会有参数进行设置,在拦截器中能够获取到参数并且处理不同的逻辑。
比如这样写:@Before(UserAuthInterceptor.class,Paras="123"),当然参数可以再复杂点。
项目:JFinal
拦截器中能加入参数吗?我有2个拦截器大部分代码一样,想写一个,在里面通过参数判断不同的处理。我大概的想法是:
在拦截器的注解上面,是否会有参数进行设置,在拦截器中能够获取到参数并且处理不同的逻辑。
比如这样写:@Before(UserAuthInterceptor.class,Paras="123"),当然参数可以再复杂点。
@Before(AuthInterceptor.class)
@Para(123)
public void index()
然后在 AuthInterceptor 中通过 inv.getMethod().getAnnotation().value() 获取到该值
通过常情况下并不需要上面的方法来传递,例如,通过 inv.getActionKey() 来获取当前 action 对应的值,这个值可以事先用 Map 映射好
还可以通过 inv.getController().getPara(...) 得到参数中的值来知道参数是什么。
如果参数是全局的,或者是 Routes 级的,还可以在配置拦截器的时候通过构造方法传进去:addInterceptor(new AuthInterceptor(123));
还有一种方式是,通过创建继承类 class MyAuthInterceptor extends AuthInterceptor,在这两个类的构造方法中指定不同的参数值