2017-08-24 17:19

将做日志的代码写在 inv.invoke() 之后,一切都解决了:
inv.invoke();
log.info(...);

2017-08-24 17:17

jfinal 手册中有专门讲过这个问题,本质上来说这个问题与 jfinal 没有关系,jfinal 仅仅是将 sql 与参数直接交付给了 JDBC 去执行数据库操作

因此,完全使用 JDBC 希望的 sql 与参数值就可以了

2017-08-24 11:52

@坚强的地瓜 关闭 action reprot:me.setDevMode(false) 即可,然后就与这个 action report 完全无关了,剩下的事情就是写一个全局拦截器

2017-08-24 11:51

这个需求一直没有人反馈过,头一次看到,感谢你的分享

2017-08-24 11:39

@坚强的地瓜 关闭 jfinal action report,然后让自己新写的拦截器只输出你想输出的日志就好

2017-08-24 11:16

用一个拦截器轻松搞定,拦截器中可以通过 inv.getMethodName() 得到正在调用的方法名,还有大量其她实现的方法可以使用

2017-08-24 10:53

jfinal 是 mvc + orm 框架,本质上来说,在 jfinal 中使用任何第三方只要会用第三方就可以用起来,不需要有一个整合的动作存在

因此,只要去找找 quartz 的文档,用好它就可以了,不一定要做成 plugin

2017-08-24 10:51

这个实现超级简洁,而且足够表达这类需求的场景,感觉你的分享

2017-08-24 10:50

jfinal 模板引擎与 java 是直接打通的,所以用法如下:
#(val.substring(0, 12))

也就是说直接像在 java 中调用方法一样就可以了。此外建议仿照 com.jfinal.template.ext.extensionmethod 包中的 StringExt 来写一个 MyStringExt,扩展一个如下的方法来用:
#(val.sub(0, 12, "..."))
上面的用法做成可以指定多余部分用什么字符串表示,此外还可以在字符串少于 12 时不抛出异常,java 的 String 的 substring 方法在超出长度时会抛异常

extension method 的扩展极度容易,看一下 jfinal 手册立即就会了

2017-08-23 22:33

不会的,jfinal 已做过处理

2017-08-23 17:48

@淡定007 当然可以

2017-08-23 17:44

@wlwyq001 具体做的时候,可以参考一下 com.jfinal.captcha.CaptchaCache.java 这个实现类,里面有定时清除机制,可以直接拿过来用

2017-08-23 17:43

@wlwyq001 不需要,只要实现 ITokenCache 即可,TokenManger 早已准备妥当

2017-08-23 17:36

token 机制默认使用的 session 来存放被验证的 token 值,如果没在用 session,那么实现一下 ITokenCache 接口,然后在 configConstant(Constants me) 中配置一下:
me.setTokenCache(new MyTokenCache());

2017-08-23 17:15

@ygh331 如果自己扩展 num 指令的话,参考一下 Output.java 与 DateDirective 这两个官方指令,很容易