2018-04-14 14:46

使用 Db.update("create table ...") 就可以建表了,和用户手动建表没啥不同,just do it

2018-04-14 14:45

只用一个就可以,去除其中一个

2018-04-14 14:45

精确到秒级,直接在 jfinal 中使用第三方的 quartz 即可,如果嫌这个太麻烦,可以使用 Java 的 Timer 来做

2018-04-14 11:51

@libofei 序列化用有两个实现,一个是第三方的 fst ,二个是 JDK 自带的序列化

默认使用 fst,应该是支持递归的

2018-04-14 11:35

自动做了序列化封装,可以存放 java 对象

2018-04-13 22:49

@syso 已通过私信发送,查收一下,如果今天加群太晚没有处理,明天早上会被处理。直播视频录制随后会发给你

2018-04-13 20:38

很久没有开发过微信项目了,建议看一下文档:
https://gitee.com/jfinal/jfinal-weixin/wikis/AccessTokenApi

2018-04-13 20:37

@lzq1990 只要是调用了 renderNull() , jfinal 就不再干预流了,用户完全自己掌控流

2018-04-13 20:35

@SwainHo 正解,具体做的时候,只要改变 handler 中的 String target 这个参数就可以了

2018-04-13 17:22

jfinal 只支持 /method/param 这种路由,具体路由规则看一下 jfinal 文档:
http://www.jfinal.com/doc/2-3

只有四种规则,很容易掌握。 如果一定要支持 param/method 这种形式,可以通过定制一个 Handler 去转换一下, 改变 handler 中的 String target 参数即可完成转换

2018-04-13 11:40

@圣威 无论模板数据在哪里,模板就是模板,而不能是 sb.append(...) 这种代码,除非你是在用 Java 代码动态生成模板代码,才会有 sb.append(...) 存在

将拼接好的模板输出来,看看语法对不对,然后就知道如何改进了

此外,模板的核心目标之一就是避免 String 拼接的,所以直接利用模板的功能去写内容,尽可能不要使用 sb.append(...) 这种东东

#if(attr.attrdefinition.getName().contains(value.getName()))
checked
#end

2018-04-13 11:33

@圣威 你这到底是 Java 代码还是模板代码?
sb.append(...) 这个看着是 java , #if(attr ... 这个看着是模板,这是要做什么?

2018-04-13 11:32

@圣威 心中记着:enjoy 表达式是与 java 表达式直接打通的,然后就可以 just do it了

2018-04-13 11:30

或许是你的 sql 让每条更新语句都更新了全表数据,或者全表的大部分数据

假定你有 1000 条 sql, 而被更新的表是 10000 条数据,如果这 1000 条 sql 全都会更新这 10000 条数据,那总共更新次数是 1000 * 10000 ,一共是 “一千万” 次

jfinal 数据库操作是全部委托底层的 JDBC 的,jfinal 并未做任何干预,性能主要取决于你的 sql 以及 JDBC 自身的速度还有数据库的速度

2018-04-13 11:26

什么包含? 是 list 还是 map ,还是 String?

enjoy 引擎与 java 表达式是打通的,这样用就可以:
#if( "abcdef".contains("abc"))
#if(mapAAA.contains(mapBBB))
#if(listAAA.contains(listBBB))

多看下手册,这部分内容也就一个章节