jfinal拦截器支持参数传递吗

    拦截器中能加入参数吗?我有2个拦截器大部分代码一样,想写一个,在里面通过参数判断不同的处理。我大概的想法是:

    在拦截器的注解上面,是否会有参数进行设置,在拦截器中能够获取到参数并且处理不同的逻辑。

QQ图片20170520125901.png

比如这样写:@Before(UserAuthInterceptor.class,Paras="123"),当然参数可以再复杂点。


评论区

JFinal

2017-05-20 15:20

可以额外定义一个 annotation,然后在 AuthInterceptor 中读取出来,例如:
@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,在这两个类的构造方法中指定不同的参数值

wangqian0628

2017-05-22 16:03

热门反馈

扫码入社