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

How to access value of dynamic variable in freemarker?

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

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

我想在Freemarker端读取这个配置,然后给变量赋值。

但是,要检索哪个键值是有条件的,由一个 freemarker 变量“${stage.displayname}”驱动。

现在,让我们假设—— ${stage.displayname} = "Functional" 那么应该获取 aws.codedeploy.FunctionalTagKey

所以, 我想尝试的是

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

应该return"functionalEC2TagKey1"

我试过像这样调整它,

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

然后,

key   = "${EC2_TAG_KEY}"

正在评估

key = aws.codedeploy.FunctionalEC2TagKey

有人可以帮我解决这个问题吗?

非常感谢, Swapnil

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