2018-01-06 19:24

@jasun 现在用一下 @Before(NotAction.class) 拦截器也可以

2018-01-05 20:10

看一下 CacheInterceptor 中的代码,再扩展一下这个拦截器即可

2018-01-05 18:18

通过 arp.setShowSql(true) ,将 sql 输出到控制台,看一下有啥问题

2018-01-05 14:33

然后,使用不同的 layout,只需要调用不同的函数就可以了,例如前端界面调用:
#@frontLayout()

后端界面调用:
#@adminLayout()

2018-01-05 14:32

当然可以,多次调用 engine.addSharedFunction(...) 添加多个layout 文件进去即可,为不同的 layout 文件中的函数取不同的名字,例如:
#define frontLayout()
...
#end

#define adminLayout()
...
#end

2018-01-05 11:29

如果你的模板在 class path 或者jar 包之中,配置一下:
Engine.use().setSourceFactory(new ClassPathSourceFactory());

如果不是的话,配置一下这个:
Engine.use().setBaseTemplatePath(....);

2018-01-04 16:46

PropKit.use 方法的第二个参数,放在外面去,成为 Cron4jPlugin 的参数

2018-01-03 22:41

@liruixiang 使用 JsonKit.toJson(a) 将整个 List 一次性转成 json,不需要 for 循环去转化

2018-01-03 21:20

你当前用的这个 QuartzPlugin 太老了,只支持 jfinal 老版本,建议改用 jfinal-ext2 这个项目

2018-01-03 21:19

单步调试找到原因

2018-01-03 21:18

value 肯定传过去了,你用的 #para(x.value) 生成sql 时会生成为一个问号占位,真正的参数生成在了 SqlPara 中, 通过 sp.getPara() 可获取到

2018-01-03 21:16

@liruixiang 在一次请求中调用多次 render 系列方法,只有最后一次调用有效,在手册中有明确说明

解决办法极度简单,将 renderJson 从 for 循环中挪出去即可

2018-01-03 18:12

提示文件不存在, 单步调试进入 VoiceKit 看发生了什么

2018-01-03 17:25

麻烦给 jfinal weixin 提个 issue到 gitee.com 上