如何使用Groovy脚本引擎替换三元运算中的变量

时间:2019-01-07 15:47:38

标签: groovy groovyscriptengine

我正在使用Groovy SimpleTemplateEngine在运行时动态设置值。我也在字符串中使用三元运算符。三元运算符中变量的值不会更新。有人可以帮忙实现此目标吗?

File f = new File("test.txt");
        SimpleTemplateEngine engine = new SimpleTemplateEngine();
        Template template = engine.createTemplate(f);
        def refMap = [:]
        refMap["condition1"] = "true";
        refMap["acctNbr"] = "1234567890";
        refMap["value"] = "abc";
        println template.make(refMap).toString();

test.txt

<acctNbr13>${acctNbr}</acctNbr13>
${(
Boolean.parseBoolean(condition1)
?
'''
<test>${value}</test>
'''
:
''
)}

1 个答案:

答案 0 :(得分:0)

我怀疑该字符串已经代表了替换后的值,并且自身无法解析。

它对您有用吗

 '''
 <test>${value}</test>
 '''

使用

 '<test>' + value + '</test>'