Jfinal模板语言

首先,我觉得Jfinal的模板语言Enjoy很好用,但是我是新手,没有深入的使用。

开发过程中有以下一个例子:

Map<String, Object> paramMap = JSON.parseObject(json, new TypeReference<Map<String, Object>>() {}); //所有参数放入Map

Template template=engine.getTemplateByString(sql);

sql =template.renderToString(paramMap);

paramMap放有所需要的参数,但是我没法肯定参数是否已经足够,有没有缺失。

(即使缺失,Enjoy好像也不报错,只是填写空白)

有没有方法可以检查参数是否缺失呢?(比如preRender函数之类的)

谢谢。

评论区

杜福忠

2018-03-01 15:11

有点没明白。。
是想在模版里面判断 是否有参数 ?
6.4 指令

JFinal

2018-03-01 15:40

写点示例代码,希望怎么来使用

例如是不是希望这样用:
#if( exists( var ) )
...
#end

如果上希望上面的用法,目前可以通过自定义指令来扩展:
scope.exists(key);

rirai

2018-03-01 19:08

@JFinal 我的想法是 boolean isHasAllParameter=template.preRenderToString(paramMap);
这个preRenderToString(paramMap)和renderToString(paramMap)基本类似的,但是不进行真正的替换动作,只是检查是否有参数缺失。
不知道,我的解释清楚了没有。

JFinal

2018-03-02 11:40

@rirai 要做这个功能就太耗费性能了,相当于是原来两倍的资源消耗,不建议做

rirai

2018-03-03 09:17

了解。那么能否给个参数设置,在map中缺少参数的时候,替换成某个默认值?现在好像是直接替换成空白了吧。

热门反馈

扫码入社