как использовать Карты с groovy .text.SimpleTemplateEngine - PullRequest
0 голосов
/ 18 января 2020

Я не уверен, как использовать Карты с движком шаблонов. Может кто-нибудь сказать мне, что я делаю здесь неправильно?

def engine = new groovy.text.SimpleTemplateEngine() 
def binding = [jobs:[[name:'job1',action:'build'], [name:'job2', action:'build']]]
def text = '''
println ${jobs}
println ${jobs[0].name}
${jobs}.each{ job ->  
    println "name " + job.name 
}

'''
def template = engine.createTemplate(text).make(binding)
println template

производит этот вывод

Result
println [[name:job1, action:build], [name:job2, action:build]]
println job1
[[name:job1, action:build], [name:job2, action:build]].each{ job ->  
    println "name " + job.name 
}

2-й println показывает job1 из этого ${jobs[0].name}, который выглядит хорошо, кроме меня хочу сделать это в итераторе, но я не уверен, что это показывает each. Я ожидаю получить

name job1
name job2

от итератора. Есть идеи как это сделать?

1 Ответ

1 голос
/ 18 января 2020

все из документации: https://docs.groovy-lang.org/latest/html/api/groovy/text/SimpleTemplateEngine.html

def engine = new groovy.text.SimpleTemplateEngine() 
def binding = [jobs:[[name:'job1',action:'build'], [name:'job2', action:'build']]]
def text = '''
jobs[0].name = ${jobs[0].name}
<% jobs.each{ job -> %>\
   name = ${job.name}
<%}%>
'''
def template = engine.createTemplate(text).make(binding)
println template

результат:

jobs[0].name = job1
   name = job1
   name = job2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...