2019-05-24 15:04

service 事务的边界正如你需求的那样,从你点击开始直到节束,无论中间有多少步

你碰到的问题,很可能是因为事务级别不够引起的,对于 mysql 来说 jfinal 比较高版本的事务级别是:
Connection.TRANSACTION_REPEATABLE_READ;

这个值是:4, 对于一般的应用是够用的

oracle 下面值是: 2

在使用事务的时候,有一件事情要特别注意,如果你是将数据库的值先读到内存,然后改这个值,再存到内存,那么事务级别是要相应提高的,例如:
int cash = Db.queryInt("select cash from account where id = ?", 123);
cash = cash + 100;
Db.update("update account set cash = ? where id = ?", cash, 123);

如果你的更新操作是用 sql 实现,直接在数据库中实现的,那么事务级别可以更低,例如:
Db.update("update account set cash = cash + 100 where id = ? ", 123);

注意区别上面两种用法,前面的用法对数据的操作是在你的应用中, 后面的用法是在 mysql 数据库中,这两种用法对事务级别的要求是不同的,前者起码要锁住 id 值为 123 的行,如果更新范围大需要锁表,这个锁行、锁表就是与事务级别有关的,事务级别越高,锁的范围就越大

2019-05-24 14:56

如果你是 jfinal 3.8 升上来的,什么也不用改,平滑升级

如果你是更低的版本,升到 3.8 有详细的文档:
https://www.jfinal.com/doc/14-1

升到 3.8 等于就升到了 4.0

俱乐部微信群会在开发者联盟上线以后创建

2019-05-24 14:53

跨域有很多办法,如果是从 jfinal undertow 着手的话,可以配置跨域的 filter , jfinal undertow 配置 fitler 的方法见文档:
https://www.jfinal.com/doc/1-4

注意看第 12 小节

具体配置成什么 filter , 在网上搜索一下:跨域、filter

2019-05-24 14:52

如果用到文件上传功能的话,拦截器中也要先 inv.getController().getFile()

2019-05-23 21:11

最重要的资源都在 maven 中心库,改一下 pom.xml 就可以自动下载

本站的下载文件除了 demo 以外,其它的都在 maven 中心库可以下载

最后,旧版本也可以通过改一下下载链接的版本号下载到

2019-05-23 17:25

什么浏览器? 版本号是啥,需要重现后针对性解决

2019-05-23 17:24

不要这么玩,耦合度太高,业务层独立出来,在 controller 中使用 @Inject 注入业务层

2019-05-23 09:54

@柳萧然 view 是不是以 "/" 打头,专门针对 render 方法来说,与 setBaseViewPath 无关

setBaseViewPath 无论是不是以 "/" 打头都一样

2019-05-23 09:53

即将整理公布

2019-05-23 09:52

本身是全站 https,只不过同时支持了 http,可以试一下任何 url 将 http 改成 https 都是可以的

2019-05-22 16:00

注意看一下 render 时的参数,以 "/" 打头的时候将勿略 baseViewPath 与 viewPath

文档里面有详细说明

2019-05-22 14:58

@scocai 看来这个 response.setCharacterEncoding(getEncoding()) 居然影响到了 content type,头一次发现这个

感谢反馈,赞

2019-05-22 14:47

@深山老枪 还要注意一个问题,jfinal undertow 不支持 JSP, 用一下 jetty-server,文档中有说过:
https://www.jfinal.com/doc/1-6

2019-05-22 14:46

@深山老枪 不对,你用的是 renderJsp , 所以不配置也是可以的

这个配置只是针对于 render , 而不是针对于 renderJsp 与 renderXxx 之类的