2020-07-16 23:33

@crazycl 当然可以,原理都是一样的

2020-07-16 22:19

Db 可以通过继承 DbPro 覆盖其中的 save() 方法即可解决,最后切换到自己的 DbPro:
arp.setDbProFactory(new MyDbPro());

2020-07-16 17:35

这个功能偏业务,大致流程如下:
1:在 jfinal 项目中生成一个随机数字字符串
2:将生成的字符串存放在数据库中
3:正如 @小白菜111 说的,用一个第三方的短信平台将上面的随机字符串发送给用户手机
4:用户在页面输入收到的字符串并提交
5:项目中验证用户提交的字符串与数据库中的对比,相同则通过验证

2020-07-16 17:01

有个很重要的事情, 参数注入本质还是用的 getModel 与 getBean ,所以如果你用 getModel 工作正常,但参数注入不正常,只有一种可能, 那就是你的参数注入其实用的是下面这个:
getBean(...);

而不是用的 getModel

那么问题变成了, jfinal 的参数注入在什么情况下调用 getModel,什么情况下调用 getBean?

答案是如果你的 Pay.java 实现了 com.jfinal.plugin.activerecord.IBean 这个接口,就会使用 getBean,否则如果继承了 Model 就会使用 getModel,其它情况使用 getBean, jfinal 中的相关源代码如下:

if (com.jfinal.plugin.activerecord.IBean.class.isAssignableFrom(typeClass)) {
//实现了IBean接口,优先按BeanGetter来处理。
return new BeanGetter(typeClass, parameterName);
}
else if (com.jfinal.plugin.activerecord.Model.class.isAssignableFrom(typeClass)) {
return new ModelGetter(typeClass, parameterName);
}
else {
return new BeanGetter(typeClass, parameterName);
}

那么问题就可以最终确定为,你在表单域中的 order_id 没有对应到相应的 setter 方法

2020-07-16 16:51

@永字诀 这个是正解

2020-07-15 23:36

@BTMTimor 没仔细看到问题, @xialinlin 同学的回复是对的

2020-07-15 18:15

@七五热 注意要调用 druidPlugin.stop() 与 arp.stop(), 才能释放资源

jfinal 之下这两个方法是框架自动调用的

2020-07-15 17:31

@hjk0205 只要是客户端在通信过程中主动断开连接就可以重现该问题了

服务端除了忽略这类异常以外,没有别的什么办法,毕竟客户端的事情服务端无法控制

2020-07-15 17:27

@山东小木 这个需求很弱,没有实现

少部分需求扩展一下挺好

2020-07-14 22:35

@hjk0205 用户在使用小程序时,强制关闭退出就可以办到

andriod 手机在调出程序列表时,可以左右或者上下划动关闭应用

2020-07-14 22:33

只有当前线程会 sleep,多线程并不会串行执行,原因应该是你调试方法不当

如果你用的是 eclipse ,在 sleep 代码处设置一个断点,在个请求到达你上面那个 sleep 代码以后,在 debug 小窗中会出现多个被挂起的线程,点击不同的挂起线程,可以在 sleep 以后继续调试

这个问题必然是与 jfinal 毫无关系的, jfinal 自然是无法干预让 Thread.sleep(...) 在多线程下串行的, 就是想干预也办不到

2020-07-14 22:28

@石头809155072 重启的时候并不一定耽误正在运行的任务

你有使用 linux kill 命令的时候,不要带上 -9 等等参数, JVM 的停止是会等待正在运行的线程执行完毕的

2020-07-14 17:24

@錢勢惘導 原先是与 hget 不一样,现在按你的需求改掉了,你反而又不希望这么来用,不知道你的需求到底是什么