2019-09-27 16:28

@汪雪雷 这个配置只针对 maven 管理依赖的情况,配置方法如下:
https://blog.csdn.net/lh11077/article/details/80143996
注意配置为勾选上这个:Include dependencies with "Provided" scope

你是手动管理的 jar 包依赖,用不上这个东东

2019-09-27 16:18

@奇衡三 碰到问题追问到底的精神,赞

2019-09-27 15:47

因此,不建议手动管理依赖,而是使用 maven

2019-09-27 15:47

@汪雪雷 改 pom.xml 中的 dependency 下的 scope 值为 provided 的那个 jetty-server 依赖

如果是自己导的包,需要下载本站首页的 jfinal-4.5-all.zip 中的 jetty-server-xxx.jar 包使用,这个包里面有相关的依赖包,否则会缺包

pom.xml 是自动管理依赖的,自己导入的包要注意其递进依赖的所有包都要存在

2019-09-27 14:52

新版本 IDEA 有相关配置,可以消除这个问题

2019-09-27 14:52

如果用到 jsp 需要使用 jetty-server ,而不能使用 jfinal-undertow

如果用的 jetty-server ,检查一对 jetty-server 的依赖要从 provided 改为 compile, IDEA 在开发时对于 scope 为 provided 的依赖无法加载

2019-09-27 14:19

通过继承 DbPro 来定制一下 batch 方法,具体参考:
https://www.jfinal.com/doc/5-5

jfinal 之所以不这么干,是因为根本无法实现,感兴趣的同学可以实验一下

2019-09-27 14:14

如果是多线程对这个有影响,能猜到的就是当前出问题的数据源被别一个线程切换到别的数据源了

切换数据源的代码是: Db.use(...), 搜索一下代码中有无这类代码

2019-09-27 14:12

大部分 oracle 版本的驱动都不会有这个问题

2019-09-27 14:12

@一个葫芦子 tableName 后面的 class 不一样这个倒是可以让 tableName 重复映射

但主键名重复一定是有问题的,你升级到较高的版本,不会生成重复主键名

注意,这个重复问题是 oracle 驱动问题,jfinal 高版本解决这个问题不是份内之事

2019-09-27 13:09

@一个葫芦子 ID 是主键,你生成的主键与 tableName 都有重复的问题,肯定是生成的问题

主键生成重复问题是 oracle 驱动的 bug,在高版本的 jfinal 已经处理过,升到 jfinal 4.5 即可解决

tableName 生成重复的问题头一次见,这个你得好好检查一下原因

2019-09-27 11:47

这段代码怎么来的? 是不是用生成器生成的? 数据库是不是 Oracle ?

提问必须要提供足够的信息量,否则没人猜到你要问什么

2019-09-27 10:29

确实该添加这个,建议暂时用里头的 validateRegex 结合正则表达式解决一下

感谢反馈

2019-09-27 09:54

@海底月 空指针异常,通过单步调试找到值为 null 的对象,分分钟解决的事情

单步调试是开发中基础的基础,是要在学校就要熟练掌握的基础知识

2019-09-26 23:15

jquery 可以通过配置 contentType: 'application/json' 参数来支持提交 json 数据,例如:

// 表单序列化成 json 字符串
function formToJsonString(formId) {
var paramArray = $('#' + formId).serializeArray();
// 表单参数转 json 对象
var jsonObj = {};
$(paramArray).each(function() {
jsonObj[this.name] = this.value;
});

// json 对象转 json 字符串
return JSON.stringify(jsonObj);
}

$.ajax({
type: "post",
url: "http://localhost/action",
contentType: 'application/json', // 关键参数
dataType: 'json',
data: formToJsonString(表单id),
success: function(ret) {
}
});


最后,在后端 Controller 中通过如下代码可以获取参数值:
String json = getRawData();
Map map = FastJson.getJson().parse(json, Map.class);