如何在 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.bar
与 foo["bar"]
相同,在 []
中你可以有任何类型的表达式,而不仅仅是简单的字符串文字。
我有一个 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.bar
与 foo["bar"]
相同,在 []
中你可以有任何类型的表达式,而不仅仅是简单的字符串文字。