2017-12-21 14:10

@Shydow tomcat 还有别的坑,多多注意

2017-12-21 14:10

PathKit 这个工具类里头的部分方法是针对 web 项目,所以如果是非 web 项目,可以用一下里头与 web 无关的方法

所以,不要使用 PathKit.getWebRootPath(),而是去用 PathKit.getRootClassPath() 方法

如果一定要用 getWebRootPath() 方法,可以在使用之前用:PathKit.setWebRootPath(....) 提前设置好一个值

2017-12-21 14:04

@YiQang 异常的 cause 部分没有

2017-12-21 13:11

jfinal ActiveRecord 支持保持 select 出来的字段次序,只需要下面一行配置即可:
activeRecordPlugin.ContainerFactory(new OrderedFieldContainerFactory());

2017-12-21 13:09

升级到 jetty 9.2 这个版本以后,jdk 8 的用户可以自行引入最高版本的 jetty 来愉快的使用了,而 jdk 7 的用户只能用 jetty 9.2

2017-12-21 13:08

补充一下,后续 jfinal 版本会升级到 jetty 9.2 这个版本,这个版本貌似支持 jdk 7,但不支持 jdk 6,还可以接受

2017-12-21 13:08

jetty 9 需要 jdk 8 的支持,为了照顾 jdk 6、7 的用户, jfinal 整合 jetty 启动的 JFinal.start(...) 方法暂不支持 jetty 9

当然,上面仅针对于 JFinal.start(...) 这一种启动方式来说的,你可以用上 jetty 9.4 它自己本有的启动方式来启动,还可以用 jetty-maven-jetty 来启动都可以

2017-12-21 13:01

@阿帕奇 jfinal 3.3 发布以后,最好的整合方式是通过扩展一个 ControllerFactory 出来,接管 controller 的创建,然后对创建出来的 controller 进行注入动作,这里是一个实际的项目:
https://gitee.com/duaicxx/Ioc_Manager/tree/3.3.1/src/main/java/org/dval/controllerfactory

我将实际的代码也贴在下面:
public class IocControllerFactory extends ControllerFactory {
public Controller getController(Class controllerClass) throws InstantiationException, IllegalAccessException {
Object target = super.getController(controllerClass);
InjectUtils.inject(target);
return (Controller) target;
}
}

有了上面的代码后,配置一下 ControllerFactory 即可:
me.setControllerFactory(new IocControllerFactory ());

用拦截器整合 spring 用到的拦截器,可以被 @Clear 注解清除掉,所以没有上面这个办法好

2017-12-21 12:55

老版本 mysql 的事务级别默认是 2,在有些对事务级别要求高的代码中不够用。

此外,还有一个可能是不小心的坑,以往很多人是由于上一次数据提交成功以后,再一次测试时将上次的数据结果误认为是本次事务没有回滚

2017-12-21 12:54

确定一下下面的几项:
1:如果用的 mysql,确定一下是不是用的 InnDb 引擎,老版本 msyql 使用的默认的 MyIsam 引擎是不支持事务的

2:在 Tx.java 中放个断点,看一下 conn.rollback() 这行代码是否被调用过

3:事务级别是否足够高,一般事务级别调到 4 就可以了,调整方法是:
arp.setTransactionLevel(4)

2017-12-21 12:33

@赵春辉 后来发现这个分享中的 cron 表达式是针对 quartz 的, cron4j 不能使用。

新版本的 jfinal 手册对此已经添加了详细的文档,看文档足够会使用了。

此外,这里还有一个针对 linux 的 cron 表达式的网站:https://tool.lu/crontab
但是要注意除号增量用法是与 cron4j 不同的,这个在最新版本的 jfinal 手册中有进行了说明

总之,以 jfinal 手册上的为主

2017-12-21 12:31

@我要做菜鸟 这个我考虑后续做到 jfinal demo 中去,session 的事情还是在业务层面处理比较好,毕竟无法阻止用户去使用底层最基本的 session 对象

2017-12-21 12:28

eclipse 的部分版本不支持,这个我现在也不知道原因,这里是一个更多相关信息量的贴子:
http://www.jfinal.com/feedback/2429

2017-12-21 12:26

如果是用的 tomcat 部署,注意一下 tomcat 的这个坑:
https://my.oschina.net/jfinal/blog/353062