2018-10-14 21:18

@maxwade getRawData() 多次获取数据是不浪费性能的,因为第一次获取时就将值存放到 Controller.rawData 属性中了

多次解析 json 是浪费性能了

2018-10-14 20:18

就是用 Validator, just do it

2018-10-14 16:26

useSSL=false 这个配置可以消除开发时控制台输出的一些 INFO 信息,减少干扰

感谢分享

2018-10-14 14:51

开发微信公众号项目就是一个典型的应用场景,因为微信服务端发来的 json 与 XML 是通过 getRawData() 获取的

简单记一下: 原先在 jfinal 项目通过 HttpKit.readData(getRequest()) 方式获取的数据现在全都可以改成通过 getRawData() 来获取,比以前方法简单,而且可以反复多次调用 getRawData() 不会出错, 原先的 HttpKit.readData(getRequest()) 在同一次请求时只能调用一次

2018-10-14 14:48

当客户端通过一些第三方 http 工具发送数据,并将数据放在 body 中时可以使用 getRaData()

例如,客户端通过 OkHttp 或者 Http client 这类第三方发送 json 或者 XML 时就可以:
String jsonStr = getRawData();
User user = FastJson.getJson().parse(jsonStr, User.class);
Ret ret = userService.justDoIt(user);
renderJson(ret);

如果客户端的数据是通过普通的 html form 表单提交,或者通过 javascript 表单提交或者 ajax 发来的请求,就不能使用 getRawData()

2018-10-14 11:44

@fox 那就变成了一个 getBean 、getModel 的传统问题了,将字段对应好即可

2018-10-14 10:21

@10000 由于 jfinal 3.5 添加了 action 带参功能,原本那些带参的 public 方法在升级到 jfinal 3.5 以后变成了 action,这时候就可以通过 @NotAction 很方便去除这些 action 了

2018-10-14 10:18

鼠标放在 Db.batch(List sqlList) 这个方法上,会出来这个 API 的使用例子,照猫画虎即可

这里的关键是,你要保证你的 sql 是确实可用不报异常的

2018-10-14 10:17

功能性代码建议写在 Service 层中,而不是 Controller。 感谢分享

2018-10-14 10:16

关键在于配置好: ApiConfigKit.putApiConfig(apiConfig), 否则一定会报 NullPointerException

注意看文档: https://gitee.com/jfinal/jfinal-weixin/wikis/JFinal-weixin%E4%B8%AD%E7%9A%84WeixinConfig%E9%85%8D%E7%BD%AE

此外,jfinal-weixin 项目中本身就包含了 demo ,照抄后修改下配置即可:
https://gitee.com/jfinal/jfinal-weixin/tree/master/src/main/java/com/jfinal/weixin/demo

2018-10-14 10:13

三个 input 的 type 都不对,改成: type="radio"

三个 input 的 name 也都不对,改成完全一样,例如改成:qjt.type。 数据库弄个 type 字段,表明是请假的类型,而不是三个字段

最后,单步调试看数据据,这个纯 html 问题

2018-10-12 17:51

检查一下自己的代码有没有
Connection conn = getConnection() 这样的代码,如果有的话要自行关闭:
conn.close();

此外,建议换上 DruidPlugin 或者 HikariCpPlugin, C3p0Plugin 太老了很久没更新了

2018-10-12 17:47

我再稍微延展一下,为了提升性能以及简洁性,jfinal 的注入目前只针对当前类,而不会注入当前类的父类中的属性

如果确实有对父类注入的需求,建议使用:
XxxService service = Aop.get(XxxService.class);

如上所示,Aop 这个工具类可以在任何地方创建并做注入动作,如果还是不满足这样来做,可以通过继承 AopFactory 这个类,覆盖掉其中的 inject 方法,将其中只针对当前类注入的 getDeclaredFields() 再添加一个针对父类字段的获取即可

一般使用前面建议的 Aop.get(...) 就好,因为绝大部分情况都是注入当前类,而不对父类进行注入

2018-10-12 17:44

应该是你的 @Inject 注解来自于别的 jar 包,检查一下 import 是不是 com.jfinal.aop.Inject

2018-10-12 16:18

参考文档来做:
http://www.jfinal.com/doc/3-3