J'ai fait quelques recherches mais je n'ai pas trouvé de code fonctionnel pour mon cas. J'ai deux variables du nom test
et test2
et je veux les mettre dans une carte au format [test:valueof(test), test2:valueof(test2)]
Accéder à la valeur de la variable par son nom comme String (groovy)
Mon morceau de code est le suivant:
def test="HELLO"
def test2="WORLD"
def queryText = "\$\$test\$\$ \$\$test2\$\$ this is my test"
def list = queryText.findAll(/\$\$(.*?)\$\$/)
def map = [:]
list.each{
it = it.replace("\$\$", "")
map.putAt(it, it)
}
queryText = queryText.replaceAll(/\$\$(.*?)\$\$/) { k -> map[k[1]] ?: k[0] }
System.out.println(map)
System.out.println(queryText)
Sortie:
Sortie souhaitée:
"HELLO WORLD this is my test"
Je pense que je besoin de quelque chose comme map.putAt(it, eval(it))
EDIT
C'est la façon dont je reçois mes entrées. le code va dans le script 'test'
Ceux à droite sont les noms de variables dans le script, la colonne de gauche sont les valeurs (qui seront ensuite dynamiques)
GiLA3, avez-vous la chance de vérifier la solution? – Rao
Quelles sont les données dans RTFTemplates et Message1? Votre script groovy actuel est-il dans 'test'? – Rao
Les données dans les modèles RTF ne sont pas pertinentes, l'attribut 'query' est une chaîne avec' $$ placeholders $$ ', message1 est juste une boîte vide où je retournerai le résultat' queryText' traité par le script. Oui, le script est dans 'test' – GiLA3