2019-04-25 11:00

@KevinQWW 缺少 fastjson 的 jar 包依赖

2019-04-25 10:59

@Sohnny 这个问题我也会考虑改进,或许可以不顾 null 值的场景

2019-04-25 09:48

@bbq1072 下载本站首页的 jfinal demo for maven,然后在本地跑起来,在 IndexController.index() 中的 render 改成 renderCaptcha() 测试一下行不行

如果不希望导入数据库就能跑起来,可以注掉 configPlugin 中的 ActiveRecordPlugin 有关的代码

2019-04-25 09:47

@shate 具体是怎么解决的? 修改这个贴子,补充一下内容,对社区其他同学会有帮助,谢谢

2019-04-25 09:44

这个地方,最初是为了减少一个 if ( config == null) 判断,属于对于性能极致的强迫症犯了

后来有不少人碰到这个异常,想加上一个 if 判断,进行提示,但已经有人在这么使用了:
Config config = getConfig();
if (config == null)
...

也就是说, null 值的 config 对于有些用户的场景是有意义的,如果现在加上 null 值判断并抛出带有明确提示信息的异常,兼容性会有问题

如果是我自己用早就加上 if 判断并抛出 new IllegalStateException("当前 model 未映射"),进化 8 年的 jfinal 做出任何改变都要考虑很多

2019-04-24 20:06

jfinal 默认路由你试用一下,用起来也是十分方便的

2019-04-24 20:05

很可能是 ControllerBind 的问题,不建议用这个组件

jfinal 默认的路由配置可以支持更多功能,例如 routes 级别的拦截器、baseViewType 等等,这些都是 ControllerBind 不可能支持的

2019-04-24 20:04

只能用 instanceof 来判断

2019-04-24 20:02

可能是你的开发环境有某个 jar 包有冲突,这个问题以前从来没人碰到过,验证码使用起来很方便 renderCaptcha() , 并没有什么别的操作,也不需要引入 maven 依赖

2019-04-24 20:01

重新打包以后,只需要找到那一个属于当前项目源码所属的 jar 包,将这一个 jar 包更新到生产环境即可,不用总体更新

当前项目源码所属的 jar 包的文件名,与你的 pom.xml 中配置的 groupid、version 这类东东有关,很好找,在打好包的 lib 目录下面

2019-04-24 14:13

看一下配置文件中的 jdbcUrl 配置:
jdbcUrl = jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull

里头有一个:
zeroDateTimeBehavior=convertToNull

去掉这一部分即可

2019-04-24 11:35

@tcm199695 使用 getRawData() 即可

或者使新版本的 jfinal,其中的 HttpKit 去掉了关闭动作

2019-04-24 11:35

这么来理解:
1:ehcache 正在对你的 list 进行类似下面的动作:
for ( Type x : list) {
...
}

2:你的另一个线程也在对上面的 list 进行操作,但是在进行写操作
list.add(...);

这本质还是一个 Java 基础问题: ArrayList 、HashMap 这类容器在迭代的过程中,另一个线程只能读不能写

2019-04-24 11:33

这个是因为你的某个 ArrayList HashMap 对象在存入 ehcache 之前迭代序列化时,另一个线程对这个 list、map 进行了修改操作