2020-04-29 10:37

jfinal 是 web 框架,请求过来的时候,每个 controller 中的 action 是在独立的线程中执行的,不会有线程安全问题

jfinal 的 Ret、Kv、Record 等等对象内部都没有线程安全机制,但这些对象的使用跟你使用自己创建的一个 java bean 本质是一样的,你的 java bean 一般也不会内部线程安全机制

只要对象没有多线程共享,就不会有线程安全问题

2020-04-29 01:11

@zhangtianxiao 我是说 getter、setter 方法不存在类型问题

2020-04-28 20:08

为什么 jfinal weixin 要缓存 access token 值: 因为微信官方对 access token 值的申请每天有限额,用完就不能再申请

2020-04-28 20:05

access token 值已被 jfinal weixin 按照微信官方缓存 7200 秒,只要没有别的地方使用你当前用的这个微信公众号的 appId 去申请 access token ,就不会有问题

所有出问题的都是 "多处" 共用了同一个 appId 去申请了 access token, 而 access token 永远只有最后一个申请到的值有效,以上所说的 "多处" 多数是下面的情况:
1:两个或多个开发者使用了同一个 appId 在同一时间内在开发
2:两个或多个程序使用同一个 appId 在运行

总之你记住, 同一个 appId 获取到的 access token 永远只有最后一个申请到的有效

这种问题不要找 jfinal weixin 的麻烦,jfinal weixin 开源六七年了, access token 是最基本的东西,jfinal weixin 不可能犯这种低级错误

多处共享同一个 appId 的场景,jfinal weixin 已经给了解决方案:
https://gitee.com/jfinal/jfinal-weixin/blob/master/src/main/java/com/jfinal/weixin/demo/WeixinConfig.java

注意看上面源码中的这两行代码:
String onLineTokenUrl = "http://localhost/weixin/api/getToken";
ApiConfigKit.setAccessTokenCache(new LocalTestTokenCache(onLineTokenUrl));

上面的配置就可以在本地开发时与线上共享同一个 appId 的 access token 值

2020-04-28 19:58

用一下第三方的 OkHttp 工具, jfinal 的 HttpKit 主要是供 jfinal 内部的某些功能作辅助,并没有实现完备的 http 交互功能

2020-04-28 19:56

照你这么说 ruby、javascript 这些动态类型语言就是类型地狱了

jfinal 的 active record 将类型适当动态一点,是为了增加灵活性减少代码量

此外,active record 的 Model 可以使用官方自带生成器生成 getter、setter 方法,不存在类型问题

而 Db + Record 查询结果在 enjoy 模板引擎中输出时也不存在类型问题

2020-04-28 11:41

熟悉 jfinal enjoy 模板引擎的基本用法,自然就知道如何做了

2020-04-28 09:39

原因如下:
1:登录的 form 表单提交用的第三方 jquery form 这个插件

2:jquery form 的工作原理是接管 form 表单提交的事件,将普通表单提交自动转换成 ajax 提交

3:由于网络原因,你点击登录的时候 jquery.form.js 这个资源文件还未被加载到本地,造成事件绑定还未完成,从而提交变程了普通表单提交,而非 ajax 提交

可以通过退出登录以后再重登录验证不会出现这个问题

2020-04-28 09:36

HttpKit.readData(...) 改成下面的代码即可:
String str = c.getRawData();

原因是:在一次请求响应过程中,HttpKit.getReadData(...) 只能执行一次,因为请求中 InputStream 中的数据只能被读取一次

2020-04-27 21:57

根据需求,好好写 sql 就可以,或许你的需求不是分页,而是 find 或者 query

2020-04-27 01:00

@JAdmins @haojay 通过查看 http 协议规范得知,有这个 "OK" 字符串是标准动作,本质上不应该去掉它,所以更没必要做成配置了

2020-04-26 12:42

jfinal_demo_for_maven.zip 中的文档,介绍了如何打成 jar 包运行,这个是反复验证过一直在使用的方式

不可能出任何问题,当前你碰到了问题,唯一的解决办法是你自己再细心、仔细、耐心去检查错误配置,例如入口类的包名、类名、大小写等问题

2020-04-25 18:16

找到为啥不是最新的原因

2020-04-25 12:28

@小胖 已决定将该功能添加到 jfinal undertow 2.1 中去:
https://gitee.com/jfinal/jfinal-undertow/issues/I1FIBH

2020-04-25 12:24

@小胖 这个解决办法好,已收藏 + 点赞