2019-07-11 21:44

这个并没有什么技巧,照常使用就好

注意要针对 maven 多模块项目,按文档配置一下:
https://www.jfinal.com/doc/1-5

2019-07-11 21:42

@邓小杰 解决就好,能回来再反馈更好,能帮到碰到同样问题的同学

2019-07-11 21:41

这个太奇怪了,因为 4.3 解决了 4.2 的这个找不到 com.jfinal.aop 的问题,所以,就算有问题也是 4.2 有问题,而不是 4.3 有问题

是不是你现在用的 4.3 是手动安装到本地的, 建议删掉本地 maven 库中的 jfinal 4.3 , 让 maven 重新下载一次 4.3

记得回来反馈啊,这个问题很重要

2019-07-10 18:02

看一下控制台输出的 jfinal action report, 看看被请求的 url、 controller、interceptor 等等信息是不是正确

2019-07-10 16:07

@macaque 使用 model.keep 或者 model.remove 可以过滤一下

站在 jfinal 框架的角度不好过滤, 因为 jfinal 无法知道你哪些字段是想要的,哪些是不想要的

2019-07-10 16:05

@牛打下 FastJson.getJson().toJson(...) 会调用 model 中的 getter 方法获取数据再进行转换,而你的 getter 方法中有查询数据库的操作,所以自然而然就会查询数据库了,正常流程而已

数据库查询写在业务层,不要写在 model 中, 让 model 只去承载数据

2019-07-10 11:46

存储过程一定要看一下文档:
https://www.jfinal.com/doc/5-16

2019-07-10 11:34

@牛打下 默认转 json 的实现,会严格按字段名来转,如果你原来的字段是驼峰的就没问题

如果你的这个转换是很少出现,可以用下面的方法来做:
String json = FastJson.getJson().toJson(...);
renderJson(json);

也就是说多数情况使用默认的, 少数特殊情况使用指定的方式来转

默认的 JFinalJson 有一个好处:转换不依赖于 getter 方法,那么关联查询得到的字段值,以及 put 方法放入的字段值也会被转换

而 fastjson 的转换严格依赖于 getter 方法,所以无 getter 方法的值是无法转换的

各有利弊,选好默认,然后用好个别情况

我个人的使用习惯是:
1:mysql 中的字段名使用驼峰形式
2:model 生成 getter、setter 方法
3:配置: me.setJsonFactory(new MixedJsonFactory());

这个使用习惯,一是可以保障 JFinalJson、FastJson 在转 json 时的结果是一致的,因为无论是字段名与 getter 方法转出来的都是驼峰了

不仅转出来值是一致的,而且 MixedJson 支持转换 Model.put 进来的值,以及支持关联查询得到的关联表中的值,而这些值是没有 getter 方法的

2019-07-10 11:32

你可以认为两个地方重用同一个逻辑,引入了一个适配性的参数

2019-07-10 11:31

Dialect.forModelSave(...) 方法是用来为 Model.save() 生成 sql + para 的

而 batchSave 方法可以重用这个方法,但是并不需要生成 para,所以这个参数是为了重用 来生成 sql,但不能缺少参数而提供的

2019-07-10 11:29

@tekeyoko actionKey 重复会明确报一个 action already exists 的异常, NoClassDefFoundError 这个一般是缺包引起的

2019-07-10 10:37

json 转换默认用的 JFinalJson, 只会处理 Model 的 Map attrs 值

如果希望通过 getter 转换,配置一下:
me.setJsonFactory(new FastJsonFactory());

文档中有过说明:
https://www.jfinal.com/doc/12-3

2019-07-09 22:47

结合微信小程序的官方文档看一下就知道了

2019-07-09 21:28

一般情况建议使用 jfinal demo 中的 layout 函数来布局,当前你的布局方式在 _meta.html 中的 html 标签是不成对的,一部分在 _meta.html 中,一部分在你当前的页面中

2019-07-09 21:25

后端代码看上去没有问题,打开浏览器的开发者工具窗口, 看一下返回值,如果有错误的话也可以在浏览器开发者工具中看到