2018-11-03 08:51

java script 发送的数据仍然会是 key value 键值对,所以还得用 getPara("data") 来获取,这种情况一定要彻底忘记 : HttpKit.readData(getRequest())

拿到数据以后,观察 json 数据格式是否正确,然后再用 FastJson 做 parse 转换

最后 fastjson 是根据 setter 方法来做的转换,所以你的 HomePageInfor 一定要先用 jfinal 生成器生成 setter 方法,生成器在首页的 jfinal demo 中有现成的,改改配置即可使用

2018-11-02 15:18

通过看 jfinal 源码可知 this.getRequest().getParameter("picUrl") 与 getPara("picUrl") 是完完全全等价的,因为 getPara(...) 就是转调的底层的 request.getParameter(...)

建议再单步调试多试几次,确定问题原因

2018-11-02 15:17

第一次看到 Aop.addMapping(...) 这么用的,很有创意,而且代码还很省,基本就是一个注解一个扫描搞定

2018-11-02 15:14

@年轻人 因为 TRANSACTION_REPEATABLE_READ 级别的事务并发性能比 TRANSACTION_READ_COMMITTED 要差

事务越是严格,并发度越低,例如最后一个 TRANSACTION_SERIALIZABLE 这个级别是的串行处理请求,也就是请求过来以后,一个一个通过,不允许并发,这个性能就会低到无法忍受

2018-11-02 11:34

很多基于 jfinal 自动扫描路由的扩展可用

建议先试用两天 jfinal 默认的方式,少了注解代码其实更干净

2018-11-01 22:09

浏览了源代码,非常干净整洁,功力增加不少啊

2018-11-01 20:59

要先调用 getFile、getFiles 系列方法,然后才可以调用 getPara、getModel 这类方法,文档中有过说明

注意,如果有拦截器、Validator 也要先在其中调用 getFile、getFiles 系列的方法

2018-11-01 19:45

@JM-java 已经在文档中添加了:http://www.jfinal.com/doc/5-7

感谢你的反馈,后面有同学碰到这个问题就能节省大量时间了

2018-11-01 17:15

@tuxming jfinal 的数据库操作部分仅仅是对 JDBC 进行了一个极薄封装,在本质上就是将你的 sql + para 直接扔给了底层的 JDBC,想要出错都是很困难的,因为 JDBC 是很稳固的

2018-11-01 17:13

@JM-java JDBC 默认的 Connection.TRANSACTION_READ_COMMITTED 适用于多数情况,jfinal 调高一级是为了避免某些用户的业务本身对事务级别本身要求就高,然后出错以后怪罪 jfinal,但这种事本质上是与 jfinal 无关的

2018-11-01 17:10

@可人的小石头 微信是用的 jfinal weixin 这个项目做的回调,支付宝是在后台手动添加的记录

2018-11-01 17:02

@zzh1234567 除了这个办法以外,还可能过继承 MetaBuilder 并覆盖其中的 isSkipTable 方法,通过判断 tableName 前缀或者通过正则表达式,跳过一些不需要处理的类

2018-11-01 15:31

@zzh1234567 数据库完全不动, 仅将你项目中的 oracle 的那个驱动 jar 包升级,这个与数据库升级完全无关

2018-11-01 11:14

缺少 freemarker 的 jar 包而已,注意看 NoClassDefFoundError

此外,建议升级到 jfinal 3.5,3.4 升到 3.5 没有什么考虑的,全是好处