如何在freemarker中访问动态变量的值?

时间:2019-06-12 16:18:51

标签: freemarker

我有一个gradle配置文件,其中包含键-值对中的配置。 例如

aws.codedeploy.FunctionalEC2TagKey = "functionalEC2TagKey1"
aws.codedeploy.CapacityEC2TagKey = "capacityEC2TagKey1"

我想在Freemarker端阅读此配置并将值分配给变量。

但是,要检索的键值是有条件的,并且由自由标记变量“ $ {stage.displayname}”驱动

现在,让我们假设- $ {stage.displayname} =“功能” 然后应获取aws.codedeploy.FunctionalTagKey

所以, 我想尝试的是

key   =  "${aws.codedeploy.${stage.dispalyname}EC2TagKey}"

,它应该返回“ functionalEC2TagKey1”

我试图进行调整,

EC2_TAG_KEY ='${' + "aws.codedeploy.${stage.displayName}EC2TagKey" + '}'

然后

key   = "${EC2_TAG_KEY}"

正在评估

key = aws.codedeploy.FunctionalEC2TagKey

有人可以帮我吗?

非常感谢, 斯瓦比尔

1 个答案:

答案 0 :(得分:0)

${aws.codedeploy[stage.displayName + "EC2TagKey"]}或等效的${aws.codedeploy["${stage.displayName}EC2TagKey"]},以您喜欢的为准。这是因为foo.barfoo["bar"]相同,并且在[]内您可以具有任何类型的表达式,而不仅仅是简单的字符串文字。