gpt4 book ai didi

java - freemarker 宏参数内的 if-else 语句?

转载 作者:搜寻专家 更新时间:2023-11-01 03:03:48 29 4
gpt4 key购买 nike

是否可以在 freemarker 宏的参数中包含 if/else 语句?

我现在有:

[#if myForm.id==0]
[#assign action = "add"]
[#else]
[#assign action = "change"]
[/#if]
[@printForm action /]

这是相当多的代码行,是否可以通过将 if/else 构造作为参数来缩短一点,例如:

[@printForm [if]add[#else]change[/#if]  /]

最佳答案

更新:从 FreeMarker 2.3.23 开始,您应该对三元运算符使用 condition?then(whenTrue, whenFalse)。这可以有一个非字符串结果并延迟评估其参数。

在 FreeMarker 中,您可以将其作为 boolean 格式化任务来处理:[@printForm (myForm.id == 0)?string('add', 'change')/]

更新:这是一个完整的工作示例:

[#ftl]
${.version}

[#macro printForm s]
s: ${s}
[/#macro]

[#assign myForm = { "id": 0 } ]

[@printForm (myForm.id == 0)?string('add', 'change') /]

关于java - freemarker 宏参数内的 if-else 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29694255/

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