Jfinal 2.1版本,JFinalConfig里自动配置路由的代码实现,直接晒代码
2016-01-14 00:00
477 查看
摘要: 开发中,不想每次新增一个controller类都要在JFinalConfig的public void configRoute(Routes me),手动加入,希望代码自己去找,就可以了。
背景:
1、我使用的jfinal2.1;
2、我喜欢用@ActionKey("/admin/index")这一个功能,代码复制性强,不喜欢在controller的类上加注解,不好打理;
3、不想每次新增一个controller类都要在JFinalConfig的public void configRoute(Routes me),手动加入,希望代码自己去找,就可以了;
4、其实,我主要就是用它加载一下controller类文件,我不关心【controllerkey】叫什么名字,因为,我用【actionKey】开发项目;
参考代码:
当然上面的内部方法,可以封装成一个工具类。起个名字叫 SubRoutes extends Routes
以后代码JfinalConfig的配置路由代码就可以这样写
当然,这里
背景:
1、我使用的jfinal2.1;
2、我喜欢用@ActionKey("/admin/index")这一个功能,代码复制性强,不喜欢在controller的类上加注解,不好打理;
3、不想每次新增一个controller类都要在JFinalConfig的public void configRoute(Routes me),手动加入,希望代码自己去找,就可以了;
4、其实,我主要就是用它加载一下controller类文件,我不关心【controllerkey】叫什么名字,因为,我用【actionKey】开发项目;
参考代码:
public class MyConfig extends JFinalConfig {//不相关的代码,这里就不显示了 /*** 配置路由*/ public void configRoute(Routes me) { //【IndexController.classs】该类可以自己定义,作用,带头大哥,出卖所有controller的位置。 String filePath = IndexController.class.getResource("").getPath(); File fileDir = new File(filePath); //包名 String controllerPackage = fileDir.getAbsolutePath().substring(fileDir.getAbsolutePath().indexOf("com")).replace("\\", "."); //包内的controller类名的集合 List<String> controllerNames = new ArrayList<String>(); if(fileDir.isDirectory()) { File[] list = fileDir.listFiles(); for(File file : list) { String fileName = file.getName(); //屏蔽内部类,比如:IndexController$1.classs if(fileName.indexOf("$") == -1) { controllerNames.add(fileName); String controllerName = fileName.substring(0,fileName.indexOf(".class")); String controllerKey = StrKit.firstCharToLowerCase(controllerName); try { @SuppressWarnings("unchecked") Class<Controller> controllerClass = (Class<Controller>) Class.forName(controllerPackage+"."+controllerName); //jfinal载入controller me.add(controllerKey, controllerClass); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } } } }
当然上面的内部方法,可以封装成一个工具类。起个名字叫 SubRoutes extends Routes
以后代码JfinalConfig的配置路由代码就可以这样写
public void configRoute(Routes me) { me.add(new SubRoutes(AdminIndexController.class));//后台路由--加载后台的所有controller类 me.add(new SubRoutes(WebIndexController.class));//前台路由--加载前台的所有controller类 }
当然,这里
AdminIndexController和WebIndexController不在同一个包里面,是分开的,不在同一个文件夹
打完收工。
相关文章推荐
- 推荐-新云网站管理系统 2.1 商业版(包含商城) 下载
- Rails Routes中new、collection、member的区别浅析
- jfinal与bootstrap的登录跳转实战演习
- 英语听写专家 2.1 Build 0086 注册码
- JFinal Dao 集成到 Spring
- JFinal常见问题汇总
- 使用Freesql简单地实现多条件查询
- JFinal使用Freemarker作为展示层中的国际化配置使用
- 生成jFinal的动态条件查询语句的工具类 3ff8
- JFinal项目之自动删除日志文件功能
- JFinal学习-Excel导出
- jfinal 调用 存储过程,并将结果返回
- JFinal 3ff0 +CKEditor文件上传后缀验证,大小验证。
- jweb——修改自jfinaluib的java管理系统开发基础框架
- SpringMVC 集成 JFinal Dao
- 有关Jfinal在jetty环境下开发,tomcat环境下发布造成的问题解决心得。
- jfinal 小例子 (一)
- JFinal教程JfinalUIB 代码笔记 (1)--- jfinal 乐观锁
- JFinal教程JfinalUIB 代码笔记 (2)--- jfinal中视图耗时计算
- JFina教程JfinalUIB 代码笔记 (3)--- jfinal Controller参数封装