2022-06-15 12:16

大概率是 EpRequestWrapper 中没有接管到某些 getter 方法,而参数注入调用了 getParameterMap 等方法去注入

参考 jfinal 的 JsonRequest:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/core/paragetter/JsonRequest.java

这里头接管了 getParameterMap()、getParameter(...)、getParameterValues()、getParameterNames()

JsonRequest.java 中从 getInputStream() 开始往下的一些方法仅为转调,不必关心

2022-06-14 18:24

输出是在哪里输出的?

如果是浏览器中或者 js 输出的,那么这个值 1536612013134974976l 超出了范围

在浏览器中,按一下 F12,打开开发者工具,然后点击 console,在命名行输入:
var x = 1536612013134974976;
console.log(x);

输出值为:
1536612013134975000
该值已得到确认,与你的输出一样

这个并不是 renderJson 转换出错, google 搜索一下 javascript long , 找找解决方案,一般是将这类可能超出范围的 long 型按 String 处理

2022-06-05 15:54

新版本可以配置针对 json 请求的响应值:
me.setErrorJsonContent(...)

具体用法如下:
me.setErrorJsonContent(404, Ret.fail("404 Not Found").toJson());
me.setErrorJsonContent(500, Ret.fail("500 Internal Server Error").toJson());

2022-05-30 19:36

@jfinal爱好者22 jfinal 中大部分代码是 10 年前的,最简洁的设计在 com.jfinal.template 下面,即便是这下面,也是 2016 年的代码了

2022-05-29 19:20

已 fork、start、点赞、收藏,功能全应该很有用

2022-05-29 11:21

独立版本的 activerecord 不依赖 log 模块,要去掉所有 Log.xxx 有关的代码这是出发点

去掉以后,为了不丢失异常,多数地方应该要抛出异常给上层,上层再做日志就能保全异常信息,通常上层用一个全局拦截器即可收集所有这类异常

为啥没有继续向上层抛出,是因为 finally 上方还有一个 catch (Exception e) ,那么当 catch 与 finally 同时出现异常,catch 中的异常将丢失,但 catch 中的异常远比 finally 中的重要

因为 catch 中多数是与 sql、参数甚至业务有关的异常,而 finally 中可能就是一个数据库连接断开的异常

最后 finally 的 conn.setAutocommit(..) 出现异常的概率极低,综上考虑 ......

2022-05-18 13:12

@飞水 上面的用法是对,注意 index 的值要是 int/Integer 类型,高版本 enjoy 支持 long/Long 类型

2022-05-17 23:14

@21th 5.0.0 版本新添加的可选链操作也挺香的,记得用上:
article?.account?.getNickName()?.length()

2022-05-17 19:32

前端的 enigne 配置上了 templateEngine.setDevMode(true), 很赞, 因为前端页面改完上传就直接生效了

enjoy 的 devMode 性能非常好,在加载模板之前会判断模板修改时间,只有真的修改了,才会重新加载,不多消耗性能

2022-05-17 19:30

@杜福忠 同学是正解 @daisy1024

自己管理各种 Plugin 即可,jfinal 中的 plugin 可以独立创建、启动、关闭

2022-05-17 19:27

这个方案非常简洁明了,用两个 Engine 对象分别处理前台和后台的页面,enjoy 模板引擎对象每一个都可以独立配置、使用,十分便捷

2022-05-17 19:20

这篇文档中的最后,有说明,永远不要让字符 # 出现在表达式中:
https://jfinal.com/doc/6-4

#(array[#(index)])
改为
#(array[index])
即可

2022-05-14 14:08

@gisphm 找到最本质的原因了,感谢分享

2022-05-13 21:37

参数是: "69' union select 1,2--"

这是被 SQL 注入的征兆,注意防范

2022-05-12 00:02

有些配置是可以直接拿到的,例如:
RenderManager.me().getEngine();
JFinal.me().getConstants();