我定义了以下变量:
def VAL1 = 'foo'
def VAL2 = 'bar'
def s2 = 'hello ${VAL1}, please have a ${VAL2}'
Run Code Online (Sandbox Code Playgroud)
使这种替换最简单的方法是什么?我如何构建GString s2
并对其进行评估?(VALs和s2是从数据库加载的,这个代码片段仅用于演示我的问题.)
SimpleTemplateEngine
如果可以将变量放入Map中,您可以使用它吗?
import groovy.text.SimpleTemplateEngine
def binding = [ VAL1:'foo', VAL2:'bar' ]
def template = 'hello ${VAL1}, please have a ${VAL2}'
println new SimpleTemplateEngine().createTemplate( template ).make( binding ).toString()
Run Code Online (Sandbox Code Playgroud)
编辑
您可以使用绑定而不是映射,因此以下适用于groovyconsole:
// No def. We want the vars in the script's binding
VAL1 = 'foo'
VAL2 = 'bar'
def template = 'hello ${VAL1}, please have a ${VAL2}'
// Pass the variables defined in the binding to the Template
new SimpleTemplateEngine().createTemplate( template ).make( binding.variables ).toString()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5399 次 |
最近记录: |