2017-08-24 17:23

@漫步人间 Sql server 版本的 demo 与现有的 demo 几乎一样,对 arp 添加如下设置即可:
arp.setDialect(new SqlServerDialect());

不同数据库需要设置相对应的方言,在 jfinal 手册中有详细的说明

2017-08-24 17:21

@jambolleo 试试换上最新的 oracle 驱动试试,碰到这个问题的同学很少,我自己没有 oracle 测试环境,也不知道原因

2017-08-24 17:20

@Willson_L jfinal 的 controller 并非单例,没有线程安全问题,具体的设计原因如下:
http://www.oschina.net/question/197668_221395

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 这个实现类,里面有定时清除机制,可以直接拿过来用