2019-12-11 21:47

@巨轮深港啊 仔细调试, 我记得 AnsiSqlDialect 就用到了 takeOver 为 true 的情况,其它全是 false 的情况

2019-12-11 21:35

@chcode jfinal 4.0 版本之前一直是 cglib 实现的 Aop 代理,所以 setToCglibProxyFactory() 经历的应用场景更多,适应力更强

例如,你碰到的这种路径有空格的问题,这种情形在开发时很难想到,只能等到某位同学碰到,并且还要这位同学有追跟问底的精神,才能定位问题,才有可能在新版本中解决

所以,做一个被广泛使用的 web 框架其实是极难的,因为场景千变万化,需要长时间的打磨与积累才能成熟

jfinal 经因了 8 年多的迭代,现在已经十分成熟完善,如果 8 年前我知道要花这么多时间迭代,jfinal 应该是不会存在的

2019-12-11 21:33

@chcode jfinal 4.0 版本之前一直是 cglib 实现的 Aop 代理,所以 setToCglibProxyFactory() 经历的应用场景更多,适应力更强

例如,你碰到的这种路径有空格的问题,这种情形在开发时很难想到,只能等到某位同学碰到,并且还要这位同学有追跟问底的精神

2019-12-11 17:57

按理说 druid 会定期发送心跳给服务端,我不确定是啥原因

你为 DruidPlugin 加点配置试试, 看看这个类的源码,其中有一个 setter 方法可以配置 druid 定期向服务端发送请求,以便保持连接

2019-12-11 17:55

@巨轮深港啊 单步调试进入方法内部,看调用的哪个方法

2019-12-11 16:16

@chcode 配置一下 me.setToCglibProxyFactory() 完美解决

2019-12-10 21:09

jfinal 4.8 已改进了日志模块:
1: 添加了 trace 日志级别
2: 添加了可变参数系列方法,例如: log.error("参数错误 {} ", para);
3: 添加了 slf4j 实现,配置方法:
me.setToSlf4jLogFactory();

由于 slf4j 是一个日志门面系统,所以使用 slf4j 可以用上很多其它的具体日志实现

建议升级到 jfinal 4.8,很多打磨与改进,谁用谁爽 ^_^

2019-12-10 21:08

jfinal 4.8 已改进了日志模块:
1: 添加了 trace 日志级别
2: 添加了可变参数系列方法,例如: log.error("参数错误 {} ", para);
3: 添加了 slf4j 实现,配置方法:
me.setToSlf4jLogFactory();

由于 slf4j 是一个日志门面系统,所以使用 slf4j 可以用上很多其它的具体日志实现

建议升级到 jfinal 4.8,很多打磨与改进,谁用谁爽 ^_^

2019-12-10 21:07

jfinal 4.8 已改进了日志模块:
1: 添加了 trace 日志级别
2: 添加了可变参数系列方法,例如: log.error("参数错误 {} ", para);
3: 添加了 slf4j 实现,配置方法:
me.setToSlf4jLogFactory();

由于 slf4j 是一个日志门面系统,所以使用 slf4j 可以用上很多其它的具体日志实现

建议升级到 jfinal 4.8,很多打磨与改进,谁用谁爽 ^_^

2019-12-10 19:59

此外,异常提示中会告诉你具体是哪个路径哪个文件找不到,根据异常能猜出来是哪部分出问题了

2019-12-10 19:59

注意看一下 render(view) 中的参数,finalView 的值为:
finalView = baseViewPath + viewPath + view

注意看文档

2019-12-10 17:10

@neo1999 @shanmine @happyboy

jfinal undertow 2.0 已发布到 maven 中心库,以往针对支持 JSP 的代码可以删掉了,用上 jfinal undertow 2.0 ,直接在 configWeb 中添加配置即可

2019-12-10 17:10

@neo1999 @shanmine @happyboy

jfinal undertow 2.0 已发布到 maven 中心库,以往针对支持 JSP 的代码可以删掉了,用上 jfinal undertow 2.0 ,直接在 configWeb 中添加配置即可

2019-12-10 14:54

#set ( a = [] )
#( a.add(123), a.add(456), a[0] = "new value", a[0])