类似java中的String... params,这样就可输入参数,也可以省略参数
使用场景:
有段html代码,在某些模板中需要显示,在某些模板中不显示。这段代码是共用的。并且显示的占据大多数,只有其中几个页面需要显示。例如navbar,在登录页面,不显示,进入后则显示。目前希望共用一个layout.html,只通过一个变量改变这段代码是否显示。默认不显示时,不需要设置该变量的值。
此外, template function 天然就支持更方便的传参方式,所以就更加没有必要像 java 那样实现,例如,你可在定义时只使用一个参数,例如:
#define layout(map)
#(map.title)
#(map.desc)
#end
传参的时候这样:
#@layout({title : "JFinal 极速开发社区" , desc: "天下武功,唯快不破"})
通过上面的方式,你可以传递任意类型,任意数量的参数进去
除了以上的方式传参以外,还可以通过 #set(...) 指令在模板中任意传参,例如:
#define layout()
#(title)
#(desc)
#end
用的时候这样:
#set(title = "JFinal", desc = "天下武功,唯快不破")
#@layout()
第二种方式相当于将参数从调用向前挪到了 #set 指令中
通过上面两种用法可以看出来,虽然 jfinal enjoy 引擎没有通过参数个数与参数类型进行函数重载,但传参可以更加自由灵活。
本质上是因为动态类型不方便通过参数的变数来实现重载