GStringTemplateEngine için şablonlarda kullanılacak bir işlevi tanımlamak istiyorum.GStringTemplateEngine şablonunda işlev bağlama nasıl tanımlanır?
import groovy.text.GStringTemplateEngine
def prettify = {
return "***${it}***"
}
def var = "test"
def f = new File('index.tpl')
engine = new GStringTemplateEngine()
tpl = engine.createTemplate(f).make([
"var": var,
"prettify": prettify
])
print tpl.toString()
index.tpl: Bu bir istisna atar
Var: ${var}
Prettified: <% print prettify(var) %>
: Böyle bağlayıcı kullanmak çalıştı
Caught: groovy.lang.MissingMethodException: No signature of method: groovy.tmp.templates.GStringTemplateScript1.prettify() is applicable for argument types: (java.lang.String) values: [test]
Possible solutions: notify(), printf(java.lang.String, [Ljava.lang.Object;), printf(java.lang.String, java.lang.Object), printf(java.lang.String, [Ljava.lang.Object;), identity(groovy.lang.Closure), printf(java.lang.String, java.lang.Object)
Ama bu işe yaramıyor. Şablon motorunun, ciltlemelerde ciltlemeyi kapatmalarını sağlar. Nasıl yaparım? Ya da muhtemelen başka bir şablon motoru seçmeliyim?
Bir index.tpl örneği verebilir misiniz? Kodunuz işe yarayacaktır, bu yüzden şablonda nasıl çalıştırdığınızı gösteren bir sorun olabilir. – Rhysyngsun
Cevabınız için teşekkürler! Şablon kodunu ekledim. – Soid