2018-05-21 09:19

Jsp 文件 render 后的内容不太好获取,建议使用 renderToString(...) 这个方法,可以直接获取到内容:
String result = renderToString(...);

只不过这个方法使用的是 jfinal 的 enjoy 引擎,建议试用一下这个方法,enjoy 文档第一部分告知了一种 3 秒钟内掌握 90% 用法的方法:
http://www.jfinal.com/doc/6-1

注意看下文档中红色字体的说明

2018-05-21 09:06

@李若谷 不仅功能强大,学习成本极低,而且性能极高,这里有性能测试:
https://www.oschina.net/news/90815/jfinal-3-3

这里有专用于 enjoy 性能测试的项目,自己可以在本地与 Thymeleaf 再测试一下:
https://gitee.com/jfinal/enjoy-performance

2018-05-21 09:04

@mangguo1 想要牛逼的 jq 提示,可以使用 IDEA

2018-05-21 09:02

jfinal 在 Controller 中对 session、cookie 的访问进行了便利性的封装,可以参考 Controller 中的 session、cookie 操作 API,拿来即用

2018-05-21 09:02

在 hander 中可以通过 request 参数访问 session、cookie,如:
request.getSession()
request.getCookies()

2018-05-20 17:16

@mangguo1 如果 userInfo.html 没经手 enjoy ,那肯定是没法使用 #(ctx)

在浏览器里面直接通过 URL 请求 html 页面,没走 enjoy 进行过处理,肯定当成纯文本原样显示出来

2018-05-20 16:51

@mangguo1 贴点详细代码, 当前信息量不足以知道你的应用场景

2018-05-20 16:43

所以,这里讨论的焦点并不在于如何针对 boolean 型属性生成的方法名如何命名,是命名成 isXx() 还是命名成 getXx()

而这个命名的选择 enjoy 本身并不在意,只是 enjoy 在获取这个属性时换个写法:obj.isXx()

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:35

代码量很少,感谢分享

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 会自动探测到并抛出异常

2018-05-20 16:16

页面是怎么写的代码? 添加 me.add(new ContextPathHandler("cxt")) 以后要通过 #(cxt) 去获取

2018-05-19 12:28

反馈错发到了分享频道,此贴后续会被删除,请知悉

2018-05-19 12:28

反馈错发到了分享频道,此贴后续会被删除,请知悉

2018-05-19 12:27

反馈错发到了分享频道,此贴后续会被删除,请知悉