首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
模板参数问题
出关客
2017-02-28 09:18
模板引擎,如果有像freemarker那样的自定义标签中可以写键值对传参就好了
项目:
JFinal
1
评论区
JFinal
2017-02-28 11:21
jfinal template engine 有自定义指令、template function、shared method、shared object 等扩展方式,不仅可以覆盖掉 freemarker 自定义功能,而且能实现更为强大的功能
键值对传参早就支持了,看一下手册,这样来用的:
#@functionName({k1 : 111, k2 : value})
不仅支持上述键值对传参,还支持数组传参:
#@functionName([1, "a", var, "b", 2])
回复
出关客
2017-03-04 20:39
@JFinal
嗯,多谢。
回复
出关客
2017-03-06 17:23
@JFinal
可惜我在文档中并没发现键值对这种传参方式
回复
出关客
2017-03-06 17:23
@JFinal
对jfinal template engine的使用讲解还是有些缺乏
回复
JFinal
2017-03-06 17:30
@出关客
文档中有一小节对 map 定义有过说明,这个就是 key value 传参方案
回复
出关客
2017-03-06 21:11
@JFinal
麻烦问一下在java中扩展的自定义指令中怎么获取这个map
回复
JFinal
2017-03-06 21:35
@出关客
如果是 map 以参数形式传的,那么在这个自定义指令中创建一个 setExprList(ExprList exprList) 方法,通过 exprList 这个参数就可以获取到这个 map
回复
JFinal
2017-03-06 21:36
@出关客
具体可参考一下 #date 这个扩展而来的指令,重点看一下里面的 setExprList 方法
回复
出关客
2017-03-06 21:48
@JFinal
嗯,明白了,这个地方接收到字符串,然后在这个方法里解析json
回复
JFinal
2017-03-06 21:59
@出关客
其实你也可以在自定义指令中不必关心 setExprList 这个方法,而只关注 exec 这个方法,在这个方法中直接使用父类中的
protected ExprList exprList 这个属性值就可以访问到了,注意看一下 jfinal 官方扩展的几个指令是如何直接在 exec 方法中使用 exprList 这个对象的
多说一句,还有另一个父类的 protected Stat stat 对象,直接调用其 exec 方法就相当于访问到了具有 #end 结尾符指令的 body 部分
回复
出关客
2017-03-07 11:21
@JFinal
受教,多谢波总
回复
发送
我要反馈
热门反馈
扫码入社
键值对传参早就支持了,看一下手册,这样来用的:
#@functionName({k1 : 111, k2 : value})
不仅支持上述键值对传参,还支持数组传参:
#@functionName([1, "a", var, "b", 2])