2019-02-20 14:17

@王子鹏 目前不支持该功能,可以参考虑里头的 SqlReporter.java 来做下扩展

2019-02-20 11:58

你的 Filter 的时机太早,比 jfinal 初始化要早,所以会获取到 null

一个解决办法是使用 Handler 代替 Filter,第二个解决办法是想办法让 log 初始化的时机推后,例如做个 getLog 方法:
private Log getLog(...) {
if (log == null) {
log = ....;
}
return log;
}

注意看 JFinalFilter 中有一个 initLog() 方法,就是因为这个时机问题,该方法是便于 log 后续被初始化,多调试一下,了解流程

2019-02-19 21:45

@zhangshiqiang 回头策划将 jfinal 所有 change log 汇总分享出来,开源七年多,上千项增强与改进吓死人

2019-02-19 17:14

这个太奇怪了, 单步调试一下 doPaginate 方法中的动作,数据应该有才对

2019-02-19 17:12

这个问题在升级文档中有过说明:
https://www.jfinal.com/doc/14-1

2019-02-19 17:11

activeRecordPugin.getEngine().setBaseTemplatePath(null); 这个配置也可以这样:
activeRecordPugin.setBaseSqlTemplatePath(null);

这两个配置是等价并且打通的

sql 文件挪到 src/main/resources 下面便于管理,sql 文件本属于 resources 的范畴,而放在 webapp 下面意味着是 web 资源,不符合意义

2019-02-19 17:09

activeRecordPugin.getEngine().setSourceFactory(new FileSourceFactory()); 这样就改回老版本的用法了

不建议改回老版本用法,而是将 sql 文件挪到 src/main/resources 下面去,注意配置一下:
activeRecordPugin.getEngine().setBaseTemplatePath(null);

2019-02-19 17:08

总之你先会用 jfinal weixin ,然后仔细看一下微信第三方平台的文档,自然就知道怎么使用了

2019-02-19 17:07

微信第三方开发平台也是开发的公众号功能,只不过是作为第三方,代替甲方调用 API 而已

所以 jfinal weixin 中原有的功能仍然有用, 你只需要添加一部分与授权有关这类的 API 就好,例如:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN

然后就是以第三方的身份代替甲方调些接口:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318587&token=&lang=zh_CN

而调接口功能应该是与 jfinal weixin 一样的,在甲方那事先开好好授权

2019-02-19 16:27

炉火纯清了,连 me.setConfigPluginOrder(1) 这么隐密的功能都被找到了,赞

2019-02-19 15:59

@絮随风 从数据库里头加载数据,然后在 enjoy 中全局共享确实有不少人问过我,好问题点赞

2019-02-19 15:46

这个想法很不错,值得去做

一步步来,先做好 jfinal 自由开发者联盟:
https://www.jfinal.com/club/1-2

2019-02-19 15:27

注意这个 onStart() 回调是在 jfinal 3.6 时才有的,老版本的话使用 afterJFinalStart() 即可,这里是详细的说明:
https://www.jfinal.com/doc/2-8

2019-02-19 15:26

在 YourJFinalConfig 中创建一个 onStart() 方法,然后里头大致这样:
public void onStart() {
List list = model.find(...);
RenderManager.me().getEngine().addSharedObject("list", list);
}

然后就可以在模板中使用了:
#for ( x : list)
#(x.y)
#end

注意,上面的 RenderManager.me().getEngine() 是假定了你要对 render(...) 方法使用的 engine 对象进行配置,如果希望以别的 engine 对象进行配置看一下文档中:
https://www.jfinal.com/doc/6-2