2020-03-16 18:27

业务层的拦截器触有两种方法,一种是在 controller 中通过 @Inject 注入业务层,另一种是通过 Aop.get(XxxService.class) 创建业务层对象

以上两种方式才能让拦截器被应用上,否则拦截器是无法被触发的,检查一下

2020-03-16 12:14

尝试配置 /etc/my.cnf , 指定 mysql 的数据库数据目录,我记得是配置 datadir 这个变量,具体你要去网上搜一搜

2020-03-16 11:47

@WJME quartz 太庞大,要引入很多 jar 包, 而 cron4j 则十分轻量小巧

并且,quartz 的使用本质与 jfinal 是无关的,只要会用 quartz 就可以用了,所以 jfinal 也无需对 quartz 进行过多干预

2020-03-16 11:45

第一个 isContains 缺少右扩号,注意扩号要匹配好

2020-03-16 11:36

@Jeanna plugin management 标签会引发大量的 jar 包下载

2020-03-16 11:35

比官方文档在详细,已经在官方文档中添加了对本篇分享的链接,感谢分享

2020-03-16 11:29

@zz210891470 renderJson 转换时有默认格式,可以配置:
me.setJsonDatePattern("yyyy-MM-dd");

上面是配置默认行为,还可以临时指定,例如:
String jsonString = Json.getJson().setDatePattern("yyyy-MM-dd").toJson(object);
renderJson(jsonString);

上面的代码,先临时设置 datePatten,然后转换出 String 类型的 json 结果,最后传 递给 renderJson(jsonString);

2020-03-15 23:29

注意看一下有关 json 转换的文档:
https://jfinal.com/doc/12-1

一般来说,你可以通过 model.put("taksargs", taskargs) 来放入数据,然后再转换

2020-03-15 23:28

jfinal 默认使用 JFinalJson.java 这个 Json 实现类来转换为 json string, 而它是对 Model 中的 Map attrs 进行转换,完全不会理会你在 model 中手动加的 List taskargs;

你可以配置为使用 FastJson.java 来转换:
me.setJsonFactory(new FastJsonFactory());

FastJson.java 是根据你的 getTaskargs() 方法来转换的,但它完全不理会 Map attrs

2020-03-15 23:24

@zlsj80 jfinal.com 官网采用的办法是:不使用 getSession(...) setSessionAttr(...) 这类 API。 而是使用 setCookie("jfinalId", sessionId的值) 这种方式来保存用户登录后的 sessionId 值

如果你用到 tomcat 这类容器,也是有办法配置这个值的,但这种配置不灵活,要在你的项目中自主控制才是最方便的

2020-03-15 20:35

@zlsj80 改一下 sessionid 的值,让不同的项目拥有不同的 id 值就不会有问题了

例如本站 jfinal.com 用于登录的 session 的 name 为 jfinalId

2020-03-15 20:34

enjoy 的数值运算完全依赖于 java 内部的规则,只是输出的时候需要指定格式

需要用到 #number 指令来输出,输出的格式仍然使用 java 原有规则,不增加任何学习成本,注意看 #number 指令:
https://jfinal.com/doc/6-4

由于 #() 输出指令不指定格式,所以就跟 System.out.println(...) 输出的行为一样

2020-03-15 17:35

@WJME 你用的是 quartz,这个在 jfinal 官方并未提供,jfinal 提供的是 Cron4jPlugin, 注意看文档:
https://jfinal.com/doc/9-2

2020-03-15 17:33

已在 jfinal 源码中添加了 issue,下一版迭代的时候时间如果充裕的话再开发:
https://gitee.com/jfinal/jfinal/issues/I1BO88