小编Log*_*ack的帖子

Apache Velocity宏默认参数值

我想更新一个在许多不同的.vtl文件之间共享的宏,以包含一个新参数.但是,我只想更改我的一个.vtl文件中的调用,并保持其他文件保持不变.所以,我基本上想要添加一个可选参数,或者如果没有提供参数,则添加一个带默认值的参数.

文档(这里)提到了"#macro"部分中的可选默认值,但是经过几个小时的烦恼之后,我不能在生活中弄清楚正确的语法是什么.

所以我想采用现有的宏:

    #macro( my_macro ) 
        oldValue
    #end
Run Code Online (Sandbox Code Playgroud)

并把它变成一个宏,如:

    #macro( my_macro $param="oldValue" ) 
        $param
    #end
Run Code Online (Sandbox Code Playgroud)

我可以使用这两个调用中的任何一个正确调用它并获取指定的输出:

    #my_macro()            => oldValue
    #my_macro("newValue")  => newValue
Run Code Online (Sandbox Code Playgroud)

我已经尝试了文档中指定内容的每个排列,但找不到任何有效的方法.有谁知道正确的语法?有可能是我失踪的财产吗?

我正在使用Velocity 1.7和VelocityTools 2.0.velocimacro.arguments.strict=true 如果重要的话,我也在使用这个设置 .但是,如果没有一堆更新/重新测试,我无法轻易更改此属性.

java velocity vtl

5
推荐指数
1
解决办法
1772
查看次数

标签 统计

java ×1

velocity ×1

vtl ×1