JFinal

登录 注册

全局拦截器,有没有子局的说法。

原谅本人没时间作测试,只是个想法就发来问了。

背景是这样,一个项目,分前后台,而我希望前台一个全局拦截器,后台另一个全局拦截器。

首先,配置里有以下配置,

@Override
public void configRoute(Routes me) {
    me.setBaseViewPath("/WEB-INF/views");
    RouteFnConfig.conf(me);
    RouteAdminConfig.conf(me);
}

那么,我的问题就是,我能不能在RouteFnConfig里配一个全局拦截器FnInt.class,它只拦截在RouteFnConfig里定义的路由。而不会对后台RouteAdminConfig配的路由作拦截(也不用clear)。然后,我还会在RouteAdminConfig再配另一个全局拦截器。

一句话就是说,全局拦截器,能不能限定个小全局?(这句说得好矛盾!)

评论

  • 04-20 15:44
    必然可以,而且极其容易,妙不可言,按如下步骤:
    1:将路由拆分为前端的后端两部分
    class FrontRoutes extends Routes {
    public void config() {
    // 关键在这里,下面的拦截器会拦截所有 FrontRoutes 中配置的控制器
    addInterceptor(new FrontInterceptor());
    add("/", IndexController.class);
    }

    class AdminRoutes extends Routes {
    // 这里配置后端拦截器
    addInterceptor(new AdminInterceptor());
    add("/admin", AdminIndexController.class);
    }

    2:在configRoute 中再汇总:
    configRoute(Routes me) {
    me.add(new FrontRoutes());
    me.add(new AdminRoutes());
    }

    不仅可以分别对拆分的 FrontsAdmin、AdminRoutes 配置不同的拦截器,还可以配置不同的 me.setBaseViewPath(...),非常有利于实际的开发需求

    路由的拆分还可以在多人团队开发时,为不同的团队分配不同的 Routes,统一规范路由,各自修改自己分到手的 Routes,可以避免在 git、svn 提交时造成代码冲突
  • 04-20 15:45
    忍不住做个官方广告,加入俱乐部,获取 jfinal club 项目,该项目中有大量这种最佳实践,极其实用
  • 04-20 16:26
    @JFinal ,JFinal考虑得果然周到,给力,点赞!
  • 04-20 16:29
    @ihss23 你的提问比较有深度
  • 04-20 16:33
    @JFinal ,【握手】
  • 04-20 16:57
    必然可以,而且极其容易,妙不可言,按如下步骤:
    1:将路由拆分为前端的后端两部分
    class FrontRoutes extends Routes {
    public void config() {
    // 关键在这里,下面的拦截器会拦截所有 FrontRoutes 中配置的控制器
    addInterceptor(new FrontInterceptor());
    add("/", IndexController.class);
    }

    class AdminRoutes extends Routes {
    // 这里配置后端拦截器
    addInterceptor(new AdminInterceptor());
    add("/admin", AdminIndexController.class);
    }

    2:在configRoute 中再汇总:
    configRoute(Routes me) {
    me.add(new FrontRoutes());
    me.add(new AdminRoutes());
    }

    不仅可以分别对拆分的 FrontsAdmin、AdminRoutes 配置不同的拦截器,还可以配置不同的 me.setBaseViewPath(...),非常有利于实际的开发需求

    路由的拆分还可以在多人团队开发时,为不同的团队分配不同的 Routes,统一规范路由,各自修改自己分到手的 Routes,可以避免在 git、svn 提交时造成代码冲突
  • 04-20 17:09
    @绿色的小苹果 ,你这样Ctr C+V,真的好吗?
  • 04-21 11:12
    @ihss23 那得看Ctr谁
  • 发送