2018-05-21 09:06
@李若谷 不仅功能强大,学习成本极低,而且性能极高,这里有性能测试:
https://www.oschina.net/news/90815/jfinal-3-3
这里有专用于 enjoy 性能测试的项目,自己可以在本地与 Thymeleaf 再测试一下:
https://gitee.com/jfinal/enjoy-performance
2018-05-20 17:16
@mangguo1 如果 userInfo.html 没经手 enjoy ,那肯定是没法使用 #(ctx)
在浏览器里面直接通过 URL 请求 html 页面,没走 enjoy 进行过处理,肯定当成纯文本原样显示出来
2018-05-20 16:41
@jimchow isXx 确实是 java bean 规范,但 java 规范中很多并不好,例如 EJB 这类。
因此,对于 isXx 属性的处理, enjoy 仅仅是对 obj.xx 表达式默认去找 getXx() 方法而不是 isXx() 方法
而对于方法名的命名,enjoy 完全不干预,也不在意,例如你完全可以将方法名设置为 isXx() ,只不过在使用 enjoy 表达式的时候用一下 obj.isXx()
2018-05-20 16:34
jfinal enjoy 默认已经处理了安全问题,对于绝大部分场景都很安全,通过 com.jfinal.template.expr.ast.MethodKit.java 代码可以看到下面的安全保护:
1:禁止访问的类
System.class, Runtime.class, Thread.class,
Class.class, ClassLoader.class, File.class,
Compiler.class, InheritableThreadLocal.class,
Package.class, Process.class, RuntimePermission.class,
SecurityManager.class, ThreadGroup.class, ThreadLocal.class
2:禁止访问的方法名
"getClass", "getDeclaringClass", "forName", "newInstance", "getClassLoader",
"getMethod", "getMethods", "getField", "getFields",
"notify", "notifyAll", "wait",
"load", "exit", "loadLibrary", "halt",
"stop", "suspend", "resume", "setDaemon", "setPriority"
如果你的模板中出现上述被禁止访问的类和方法名,enjoy 会自动探测到并抛出异常