目前模版引擎提供了API直接传入模版字符进行渲染的方法,像下面这样:
com.jfinal.template.Template contentTemplate = Engine.use("default").getTemplateByString("用户名:#(usre.username)");
String content = contentTemplate.renderToString(data);
目前有提供API直接得到一个变量的值吗?
比如传入"#(user.addressList)"就把变量的原始类型的值返回出来,如果addressList为List<Map>对像,返回值Object就是List<Map>类型,而不是转换成字符串。
如果我想实现该功能应该怎样扩展一下Enjoy模版引擎?
如果希望实现你的功能,可以参考一下 com.jfinal.kit.ElKit.java 中的代码,可以这么来用:
1:不带参示例
Integer value = ElKit.eval("1 + 2 * 3");
2:带参示例
Kv data = Kv.by("a", 2).set("b", 3);
Integer value = ElKit.eval("1 + a * b", data);
具体的思路是将求值结果存放在一个叫 RETURN_VALUE_KEY 的变量之中,最后再通过 data.get(RETURN_VALUE_KEY) 获取该值