gpt4 book ai didi

java - Apache Velocity 宏默认参数值

转载 作者:搜寻专家 更新时间:2023-10-31 20:33:53 24 4
gpt4 key购买 nike

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

文档 ( here ) 在“#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

关于java - Apache Velocity 宏默认参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28753419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com