2020-06-04 16:47

@dql #for 指令小扩号以内的第一个参数, 只是一个临时的变量名,只是一个代号,它的类型完全取决于你当前是对什么类型进行迭代

它的类型不会随着你取不同的名字而改变,例如你取一个 list , 但它仍然不是 List 类型

2020-06-04 16:38

@dql 一定要心中清楚变量的类型,假定你手头的 map 这个变量是 Map 类型

那么循环的时候,每次出来的变量就要取它的 .key 与 .value

你上面的回复中用到了: #for (list : map)

虽然你的迭代变量名为 list,但这个 list 仍然需要 list.key、list.value 来取值

被迭代的对象,不会因为你用了什么变量名而去改变规则,所以我建议对迭代的变量使用 x、y 这种变量名,将上面的

#for ( list : map ) 改成 #for ( x : map ) 以免被名字误导

2020-06-04 16:23

@himans 这个得找个时间好好研究

目前,你可以在项目中进行扩展, CaptchaRender 也可以扩展出 extends MyCaptchaRender来用,然后:
render(new MyCaptchaRender(...))

2020-06-04 16:21

@dql enjoy 的用法与 java 几乎是一样的,并且针对 java 的啰嗦进行了极少量的增强,例如 map 迭代的增强:
#for ( x : map)
#(x.key)
#(x.value)
#end

当然,如果你不想学习,直接使用 java 规则也可以:
#for ( x : map.entrySet() )
#(x.getKey())
#(x.getValue())

#(x.key)
#(x.value)

#end

2020-06-04 16:18

@杜先生 freemarker 我用了 6 年多,实在受不了才决定开发 enjoy 模板引擎

所以,enjoy 自然是要去除 freemarker 固有的一些缺点的,enjoy 用起来比 freemarker 爽多了

2020-06-04 16:15

@dql 其实文档中很详细,一定要先浏览下文档, enjoy 这部分的文档主要就两个页面, 15 分钟看完足够了

都是 java 风格的用法,学习成本极低

2020-06-04 16:12

AutoBindRoutes 这种东东打到 exe 中去以后不一定工作正常,改成 jfinal 官方的路由用法即可

注意:所有的 AutoBindRoutes 这类扩展都不是 jfinal 官方的,jfinal 一直不提倡这种用法

2020-06-04 16:11

外层对 map 迭代
#for (x : map)
#(x.key)
#(x.value)

内层对 map 的 value 迭代
#for (y : x.value)
#(y)
#end

#end

当然,如果你不需要对 map 迭代,只需知道得到 list 的 key 即可,下面假定 key 为 listKey
#for ( x : map.get("listKey"))
#(x)
#end

总之,用法跟 java 几乎一样,只不过无需指定类型

2020-06-04 15:39

@yuwen01 用 enjoy 的 #define 封装一些常用的函数,里头放一些常用的 js 代码

2020-06-04 14:54

@谢 enjoy 很多好用的功能,好多人都没用上呢

2020-06-03 19:49

@BTMTimor 看来好多人都这么用过

2020-06-03 17:18

@Dull 用上 JFinalJson.addToJson 挺好的

2020-06-03 17:12

@Dull 使用 Timestamp 的情况,一般是需要 时、分、秒的, 所以 JFinalJson 的默认配置就挺好用的

你的需求是不需要 时、分、秒,所以,我建议你使用 mysql 的 date 类型,而不是 datetime 类型,因为有些浪费

2020-06-03 17:09

@cqztt 控制台下面执行 javac 命令,找不到命令证明是 JRE

2020-06-03 17:07

@Dull 那个配置仍然只是局部的, 用我介绍的配置方法才能成为全局的