2

次の変数を定義しています。

def VAL1 = 'foo'
def VAL2 = 'bar'

def s2 = 'hello ${VAL1}, please have a ${VAL2}'

この置換を機能させる最も簡単な方法は何ですか?どうすればGStringを構築しs2て評価することができますか?(VALとs2はデータベースからロードされます。このスニペットは、私の問題を示すためだけのものです。)

4

2 に答える 2

6

SimpleTemplateEngine変数をマップに入れることができる場合は、を使用できますか?

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()

編集

マップの代わりにバインディングを使用できるため、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()
于 2011-06-15T10:11:15.763 に答える
1

そして何について :

def VAL1 = 'foo'
def VAL2 = 'bar'

def s2 = "hello ${VAL1}, please have a ${VAL2}".toString()

注:二重引用符に注意してください

于 2011-06-15T10:16:20.300 に答える