मैं GStringTemplateEngine के लिए टेम्पलेट्स में उपयोग किए जाने वाले फ़ंक्शन को परिभाषित करना चाहता हूं। मैं उस तरह से बाध्यकारी का उपयोग करने की कोशिश की:GStringTemplateEngine टेम्पलेट के अंदर फ़ंक्शन बाध्यकारी को परिभाषित करने के लिए कैसे करें?
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:
Var: ${var}
Prettified: <% print prettify(var) %>
यह एक अपवाद फेंकता है:
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)
लेकिन यह काम नहीं कर रहा। ऐसा लगता है कि टेम्पलेट इंजन बूलिंग्स में बूलिंग्स में बंद रहता है। मैं यह कैसे करुं? या शायद मुझे एक और टेम्पलेट इंजन चुनना चाहिए?
क्या आप index.tpl का उदाहरण दे सकते हैं? आपका कोड काम करना चाहिए, इसलिए यह संभवतः एक मुद्दा है कि आप इसे टेम्पलेट में कैसे आविष्कार कर रहे हैं। – Rhysyngsun
आपकी प्रतिक्रिया के लिए धन्यवाद! मैंने टेम्पलेट कोड जोड़ा। – Soid