2019-06-18 00:08

3.5处理了,HttpKit.readData
去掉 close() 否则后续 ActionReporter 中的 getPara() 在部分 tomcat 中会报 IOException : Stream closed

2019-06-18 00:06

升级吧,推荐使用最新版, 其次最低是3.5版

2019-06-17 23:46

其实看了源码就知道了,第一个是从class输出目录去找的,如果想指定目录可以提前调用PathKit.setWebRootPath

第二个是因为 jfinal-undertow中找到文件夹并且注入的值了

2019-06-17 17:41

我说拼接是 : allowopenid='"+allowopenid+"' 这段代码。。。

2019-06-17 17:41

@洛小风 我觉得更多情况是 数据库里面数据和你准备修改的是一样的, 所以数据没有变化,返回了0

2019-06-17 17:36

batch用法貌似没有问题,SQL存在拼接问题。返回0就是要么数据没有什么改变,要么就是where没有匹配上。
其次再说你这个业务,完全可以用SQL where id in(1,2,3) 这样组装,再update执行一次就OK了,何必大炮打蚊子了, 如果业务是 有一个 是已审批就不执行, 那么后面追加一个and条件就可以了啊

2019-06-14 18:11

想要实现这样的效果,可以自己建一个 MyRoutes, 重写一下:
public Routes add(Routes routes) {
for(Interceptor x : getInterceptors()) routes.addInterceptor(x);
super.add(routes);
return this;
}
自己的业务 Routes 都去继承 MyRoutes 就可以了吧

2019-06-14 14:05

quertXXX(para.getSql(), para.getPara())

2019-06-14 13:58

@白小猿 Record r = Db.findFirst(String sql) 只有一条结果集的时候 https://www.jfinal.com/doc/5-5

2019-06-13 15:56

@sourceTT 好的~ 学习学习争取弄明白原理

2019-06-13 15:09

@sourceTT 嗯,是有这种问题存在的可能, 再问下,Atomikos的实现原理是怎么保证全部回滚的了?

2019-06-13 14:36

我没做过分布式事务,请教下,不知道和下面这样写,原理上有啥不同了?或者说下面的写法会存在什么问题了?
Db.tx(() -> {
return Db.use("test1").tx(() -> {
return Db.use("test2").tx(() -> {
Db.save("test", record);
Db.use("test1").save("test", record);
Db.use("test2").save("test", record);
return false;
});
});
});

2019-06-12 10:24

@你妹啊 加入俱乐部, 里面好多大牛,说话又好听,反应速度又很快

2019-06-12 10:03

https://www.jfinal.com/doc/1-7
5、部署
jfinal 开发的项目就是标准的 java web 项目,所以部署方式没有任何特殊的地方,有一些部署方面要注意的小技巧,见这篇博文:https://my.oschina.net/jfinal/blog/353062

2019-06-12 10:01

java.lang.NoClassDefFoundError: Could not initialize class com.jfinal.upload.MultipartRequest
cos的那个jar没有加上