2020-06-05 00:40
在使用 jfinal undertow 开发时,是通过 jfinal undertow 项目中的 UndertowKit. doConfigJFinalPathKit(...) 方法使用反射的方式,调用了 PathKit.setWebRootPath(...) 方法,向其注入了 undertow.resourcePath 中第一个有效的目录代码:https://gitee.com/jfinal/jfinal-undertow/blob/master/src/main/java/com/jfinal/server/undertow/
2020-06-04 20:40
这个描述,看上去是 spring boot 的版本变化造成的,建议你用一下排除法解决一下对于变化的部分,一项项排除在 jfinal 层面,jfinal 是没有干预这个结果的我一般是建议不要使用 tinyint(1) 而是使用 tinyint(2) 等等长度大于 1 的类型,这样的结果更确定,一定会是 int 型
2020-06-04 17:40
话说回来,jfinal 有自己的风格与理念,如果照 spring 的路再走一次的话,jfinal 也就没有存在的价值了所以,jfinal 的很多理念与 spring 都是完全相反的,例如 jfinal 追求极度轻量级,所以代码量只有 spring 组合框架的几十分之一,甚至几百分之一,任何有 java 基础的同学都可以很容易完全掌控再例如 jfinal 追求小而精,spring 追求大而全其实,没有完美的战略,任何好战略的反面也是另一种好的战略。 世界总是这样,连世界上最完美的东西数学都是这样的
2020-06-04 17:36
@老宇 因为 jfinal 的路由方式有很多的优点是 spring 那种模式不具备的相反的, spring 那种模式还有很多的缺点这个讨论以前有过很多,已经有比较明确的共识
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 看来好多人都这么用过