[英]Apache Velocity macro default parameter values
我想更新一个在许多不同的.vtl文件之间共享的宏,以包含一个新参数。 但是,我只想更改我的一个.vtl文件中的调用,并保持其他文件保持不变。 所以,我基本上想要添加一个可选参数,或者如果没有提供参数,则添加一个带默认值的参数。
文档( 这里 )提到了“#macro”部分中的可选默认值,但是经过几个小时的烦恼之后,我不能在生活中弄清楚正确的语法是什么。
所以我想采用现有的宏:
#macro( my_macro )
oldValue
#end
并把它变成一个宏,如:
#macro( my_macro $param="oldValue" )
$param
#end
我可以使用这两个调用中的任何一个正确调用它并获取指定的输出:
#my_macro() => oldValue
#my_macro("newValue") => newValue
我已经尝试了文档中指定内容的每个排列,但找不到任何有效的方法。 有谁知道正确的语法? 有可能是我失踪的财产吗?
我正在使用Velocity 1.7和VelocityTools 2.0。 我也使用设置velocimacro.arguments.strict=true
如果重要的话。 但是,如果没有一堆更新/重新测试,我无法轻易更改此属性。
默认参数也不适合我。 但是你可以解决这个问题:
#macro(my_macro $param)
#if(!$param)
#set($param = "oldValue")
#end
$param
#end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.