Как заменить переменную внутри тернарионации с помощью скриптового движка groovy

Я использую 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 ответ

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

Будет ли работать для вас, чтобы заменить

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

с

 '<test>' + value + '</test>'
Другие вопросы по тегам