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

2017-12-20 23:35

这个肯定是 #hasPermission 这个指令写得有问题,里面可能用了 toString() 来求值,当表达式是 String 常量的时候 toString() 正好是表达式的值,而当表达式是两个加法表达式时 toString() 就是错误的

找到 hasPermission 的实现,稍加改造就好

2017-12-20 23:33

@easymbol 何必这么麻烦,在项目中做一个 weixin 子模块,添加 action专用于处理微信的请求即可。

如果要用到多个域名,主站用一个域名,处理微信可用另一个域名,也可以用二级域名

2017-12-20 21:32

LogKit 仅用于 jfinal 自身在无法确定日志被初始化,以及无需真正做日志的场景,并非让用户用于其它情况

你的需求,需要先获取一个 log 对象:
private static final Log log = Log.getLog(Xxx.class);

然后再使用:
log.error(...);

这样出来的日志就会有很详细的格式

2017-12-20 21:30

贴代码的时候可以点选一下编辑器的第二个叫做“代码语言”的下拉框,然后再贴进去,否则会出现代码丢失以及格式不正确的情况

感谢你的分享

2017-12-20 21:28

信息量严重不足,既猜不中你怎么配置的,也猜不中配置后出了什么问题

2017-12-20 21:27

HttpKit 的代码极少,仅用于最常用的使用场景,http client 工具可大可小,功能要做得很完善,体积并不会比 jfinal 自身小

建议使用第三方 http client 工具来发送请求

2017-12-20 17:36

当然可以,注意 UrlRewriterFilter 与 JFinalFilter 两者的配合,在 web.xml 中将 UrlRewriterFilter 配置在最前面,那么请求会先被 UrlRewriterFilter 接管

此外,如果 rewrite 规则比较简单的话,还可以自己写个 UrlHandler 来解决,直接改变 String target 这个参数的值就可以实现 rewrite 的功能,十分方便

Handler 的用法在 com.jfinal.ext.handler 中有实际的例子

2017-12-20 17:34

@EATI001 后续一定会解决,已经有三个方案了,jfinal 从未停止对于极速、极简的追求