2018-11-09 15:35

这里补充一下, jfinal enjoy 为了提升用户体验,如果没有必要,是不需要空格的,例如:
#if(..)aaa#else bbb#end

上面的代码 #else 与前面的 aaa ,还有 #end 与前面的 bbb 之间可以不要空格,是因为字符 '#' 可以起到分隔的作用,enjoy 就自动处理好了

而你的用法是 #else 后方多了一个字符 '2', 这种情况没有字符 '#' 作为分隔,enjoy 是无论如何不能帮你处理掉的,因为 #else2 可能是你想保留的一个普通字符串

enjoy 自动处理的情况还包括小括号,例如:
#if(a==b)xxx#end

上面的 xxx 与左边的小括号之间没有空格,是因为小括号也可以作为分隔符起作用,这个与 java 规则是类似的

2018-11-09 15:31

你碰到的这个问题,本质是关键字分隔符的问题,例如你在写 java 代码时:
if (...) ... else2
这个 else 与 2 连在一起了,java 编译器只能将你的 else2 当成变量名,而不是关键字 else

2018-11-09 15:29

@macaque 不会多出空格来,jfinal enjoy 处理过的,紧跟在 #else 后面的一个空格或者换行都会被处理掉,不会成为空格或换行

enjoy 处理过远超常人想象的细节

2018-11-09 09:49

@JM-java JDK 就配置了一下环境变量:JAVA_HOME

tomcat 配置在这里:
https://my.oschina.net/jfinal/blog/353062

druid 输出的东西要注意看是 INFO、DEBUG 还是 ERROR, 前两个不算错误输出

2018-11-08 19:05

@Yank 单步调试一下 TemplateRender.java,规则前面讲过了

2018-11-08 19:03

注意 #else 后面加个 空格

2018-11-08 18:58

@flash866 用 @NotAction 解决一下

2018-11-08 13:57

规则:finalView = baseViewPath + viewPath + view;

上面的三项:
1:baseViewPath 为 "/WEB-INF/html"

2:viewPath 为 "/user",这个值是在 add("/user", UserController.class) 时第三个参数指定的,而你第三个参数省略了,默认与第一个参数相同,即为 "/user"

3:view 为 "/registerbbbbbbbbb/registeraaaa.html" 来自于这行代码:render("/registerbbbbbbbbb/registeraaaa.html")

finalView 为 "/WEB-INF/html/user/registerbbbbbbbbb/registeraaaa.html"

但是,注意这里看但是,你的 render 方法中的 view 是以 "/" 打头的,所以 baseViewPath、viewPath 不起作用,所以你的 finalView 实际上为:
"/registerbbbbbbbbb/registeraaaa.html"

根据上面规则找到原因解决一下即可。

简单一句话:
finalView = baseViewPath + viewPath + view, 当 view 以 "/" 打头时前两项当成不存在

2018-11-08 13:41

@shenyao jfinal 俱乐部已经内测好几天了,你也先试试,本周还有点小功能要补充进去:
https://gitee.com/jfinal/jfinal-undertow

2018-11-08 09:23

@7479chen 在这个贴子上改一下就好,进入个人空间可以修改主这个贴子:
http://www.jfinal.com/my/share

此外,继承 CaptchaCache 而不是实现 ICaptchaCache,我想起来一个好处,因为 CaptchaCache 有个定时器,可以定时清掉过期的验证码,可以利用一下

2018-11-07 18:25

代码十分简洁,功能很实用,感谢分享

此外,建议几个改进:
1: 去掉所有 super 调用,例如: super.put(captcha); super.remove(key), 因为 super 的实在这种情况下应该完全抛弃

2:可以将继承 CaptchaCache 改成实现 ICaptchaCache 接口,这样也就没有 super 可以调用了

3: record.set("[Key]",...) 中的参数建议改成 "Key" , 不要加中括号

4:数据库字段名建议用符合 java 变量名规范的驼峰式

2018-11-07 18:19

如果版本号没有问题, 应该是你的参数不对, 第一个参数必须是数值类型,例如 int long float double BigDecimal 等等类型

2018-11-07 18:18

#number 指令是 jfinal 3.3 版本才有的功能,检查一下 jfinal 版本号是不是太低了

2018-11-07 14:16

单步调试一下, action 注入部分可以自己扩展的

2018-11-07 13:15

just do it