Как заменить переменную внутри тернарионации с помощью скриптового движка groovy - PullRequest
0 голосов
/ 07 января 2019

Я использую 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 голосов
/ 07 января 2019

Я подозреваю, что строка уже представляет замененное значение и не анализируется сама.

Подойдет ли вам замена

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

с

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