2012-01-24 16 views
19

क्या एक स्ट्रिंग में एक टेम्पलेट "प्रस्तुत करना" संभव है? मैं एक टेम्पलेट का उपयोग करना चाहता हूं और इसे कुछ मानों के साथ भरना चाहता हूं जिन्हें मुझे स्थानीय डिस्क में सहेजना होगा।एक स्ट्रिंग में एक टेम्पलेट प्रस्तुत करें?

रेंडर विधि हमेशा क्लाइंट को टेम्पलेट भेजती है। मुझे कुछ टेम्पलेट चलाने के समान कुछ चाहिए, लेकिन टेम्पलेट से आउटपुट को स्थानीय स्ट्रिंग वेरिएबल में सेव करें जिसे मैं स्थानीय फाइल सिस्टम में स्टोर कर सकता हूं।

उत्तर

21

यह आसान है की तुलना में आपको लगता है:

def myTemplateString = g.render(template: "test", model: [foo: bar]) 
+0

धन्यवाद! सरल और सुरुचिपूर्ण। – Henrik

+0

यह कुछ नहीं करता है, यह स्वीकार्य उत्तर क्यों है? "जी" चर क्या है? – Michael

+0

पेजरेंडर इंजेक्शन की भी आवश्यकता है। – Michael

13

आप Grails 2.x का उपयोग कर रहे हैं, तो आप PageRenderer वर्ग का उपयोग कर सकते हैं। कुछ इस तरह का प्रयास करें:

 grails.gsp.PageRenderer groovyPageRenderer 

    void methodName() { 
     def contents = groovyPageRenderer.render(template:"yourTemplate", model:yourModel) 
     //you can use contents as a string now 
    } 

यह इस तरह के एक अनुसूचित नौकरी या वेब सेवा में के रूप में, साथ ही एक वेब अनुरोध के दायरे से बाहर काम करेंगे।

+0

भी धन्यवाद। – Henrik

+2

यह कम से कम Grails संस्करण 2.1.1 और नीचे के लिए टॉमकैट 6 में काम नहीं करता है। –

+0

@ जॉन गियोटा मुझे विश्वास है कि आपको एक कंटेनर में भागना है जो काम करने के लिए सर्वलेट 3.0 का समर्थन करता है। –

संबंधित मुद्दे