2019-06-17 11:37
@天晴
总之:
1: 需求不太强烈
2: 要满足这个需求,可以通过你的办法多一行代码解决,很方便,也很好理解,没有学习成本
3:如果要加上这个功能,如果用户要在下层的子 Routes 中去除上层的拦截器相当麻烦
设计就是无处不在的权衡取舍,没有完美,只有追求最佳平衡
2019-06-17 11:34
@天晴 多数情况下,不建议使用多层拦截器,而是 AdminRoutes、FrontRoutes、WeixinRoutes ...... 这样扁平化来使用
少数确实要使用多层 routes 的,可以用你的办法:
add(new ModuleRoutes().addInterceptor(new SetMainMenusInterceptor()));
加你建议的这个功能也不难,但这个需求貌似不强烈,很少有人提起
加了的话,最大的问题在于,如果有人不希望在下层 routes 中使用上层的拦截器, 还要想办法去掉,而去掉的话就十分麻烦了
2019-06-17 11:31
@HeLei 只要是报错了,整个过程就是失败的,所以这里的关键就转向于去解决异常,而不是改里的代码了
2019-06-16 08:41
@happyboy 我也是偶然在 Windows 机器上的 tomcat 下看到这个异常,而这两个东东已经很久没用过了
只要能重现问题,一切都好解决
2019-06-15 23:10
@happyboy @akak @badouyuren
这个问题很可能是 tomcat 有丢失 class path 的现象,兼容 tomcat 丢失 class path 的 jfinal 新版本已提交到 gitee.com
尽快试用以后给出反馈,试用办法如下:
1: git clone git@gitee.com:jfinal/jfinal.git
2: cd jfinal
3: vim pom.xml 将其中的 《skip》false《/skip》 改为 《skip》true《/skip》
4: mvn clean install
5: 修改自己项目中的 pom.xml ,将 jfinal 版本号改为 4.3-SNAPSHOT
6: 试用新版本
这个问题很重要,尽快给出反馈
2019-06-15 14:54
@果汁仔 这是因为 jfinal 高版本针对 ActiveRecordPlugin 内的 Engine 对象,默认已经配置了:
arpSystem.getEngine().setToClassPathSourceFactory();
所以,默认就是去 class path 与 jar 包内寻找 sql 模板文件
所以,模板文件要转移到 src/main/resources 目录下面去
2019-06-14 21:31
@山东小木 有一个很重要的功能:针对 getSqlPara(sqlKey, ...) 以及 template(sqlKey, ...) ,点击 sqlKey 可以直接打开 sql 模板并定位到对应的 sql。
这个功能有很多人问过我了,是不是已经实现了
2019-06-14 21:30
@天晴 你不写出来我还记了有这么个方法,在 new XxxRoutes() 的同时可以直接 addInterceptor(...),这种用法最好