2022-09-22 18:29

俱乐部有提供 enjoy 的设计、算法、源码的解读:
enjoy设计-算法-源代码.mp4
enjoy设计-算法-源代码.pptx

下载地址:
https://jfinal.com/my/club

2022-09-22 12:03

基本照抄 enjoy 的 Lexer、Parser、ExprLexer、ExprParser 就可以了

词法分析是通用的,大学教材编译原理里面有。语法分析是递归下降,编码原理里面也有

enjoy 对词法、语法解析有所改进,改成了双层,在指令上用了一层,在表达式层央用了一层

单步调试能搞懂细节

2022-09-18 12:36

@chcode enjoy 极简设计之下,添加这个功能添加一行删除一行代码的事,这就是极简设计的力量:

https://gitee.com/jfinal/jfinal/commit/00940a2a2390932cf95a871a65b2172a1341dca8

2022-09-13 21:31

当然,现在 JFinalJson 也提供一配置方法可以自动转换

2022-09-13 21:31

字段名用驼峰在 mysql 中是可以的

数据库用驼峰,省很多事,不用转换来转换去

2022-09-13 21:30

开启 gzip 压缩或者采用 nginx 代理后会无法显示 content length,解决办法如下:
https://www.jianshu.com/p/946340a803dd

2022-09-07 18:31

不支持位运算、二进制,文档中有过说明:
https://jfinal.com/doc/6-3

15、从java中去除的运算符
针对模板引擎的应用场景,去除了位运算符,避免开发者在模板引擎中表述过于复杂,保持模板引擎的应用初衷,同时也可以提升性能。

与位运算、二进制有关的都不支持,事实证明,你是第一个提起这件事的

如果你要支持,可以通过 sharedObject、sharedMethod 扩展支持,打通到后端的 java , 让 java 支持就行了

例如,以下通过sharedMethod 扩展实现与运算
#( bitAnd( 123, 456 ) )

java 代码这么写:
public int bitAnd( int a, int b ) {
return a & b;
}

最后配置一下:
engine.addSharedMethod(...);

2022-09-07 18:31

创建数据库的时候指定字符集为 utf8mb4 是最好的,后面的表、字段在没指定的时候会跟着数据库的走

2022-09-07 18:29

你打包的错误信息并没有与你的项目有关的信息,也没有与 jfinal 有关的信息,信息不全,这么来排查一下:

1: 根据升级文档检查一下自 4.9.16 起哪些要小改的地方,一般都是分分钟改完,变动很小:
https://jfinal.com/doc/14-1

2: pom.xml 中的编译插件 maven-compiler-plugin
升级到 3.8.1,目前这一版本是最稳定的,不要升到最新版

2022-09-07 18:29

@chcode 已支持,变动两行代码的事。以前不支持是因为没注意到还有这么个事

2022-09-06 12:22

JFinalJson 针对 Model、Record 重点处理,其它类型一般走的 getter 方法

2022-09-06 12:20

@Leo.du 不用每个类型都转,当前你的场景大致处理一下 ModelToJson 就可以了,当然 Map 可能也要处理

2022-09-06 09:21

json 转化时,不同的类型是分别控制的,例如 Model、Record 的转换会有
class ModelToJson extends ToJson
class RecordToJson extends ToJson

而 BeanToJson 也是一样的原理,要接管 BeanToJson 需要通过如下方法实现:
JFinalJsonKit.setToJsonFactory(Function> toJsonFactory);

建议看一下源码: 在 JFinalJsonKit.java 的 106 行

2022-09-06 09:16

@杜福忠 我觉得很可能老美会先搞出来 "前后不分离" 回归后的新框架,回归后不再是原来的 Bootstrap、Layui,而时吸收了 react、vue 等框架后进化了的前后合并框架

2022-09-05 23:24

天下大势合久必分,分久必合,下一波范式转移该前后合并了