2009-10-29 20 views
5

मैं एक फ्रीमार्कर टेम्पलेट उत्पन्न करने के लिए freemarker का उपयोग कर रहा हूँ। लेकिन मुझे फ्रीमार्कर टैग से बचने के लिए कुछ रास्ता चाहिए।फ्रीमार्कर freemarker से बचने

मैं <#list> टैग या ${expression} से कैसे बचूं?

उत्तर

7

मैं alternative syntax सुविधा का उपयोग कर रहा हूं। मैं [#ftl] के साथ टेम्पलेट शुरू करता हूं और इस वाक्यविन्यास का उपयोग करता हूं।

भाव मैं स्ट्रिंग शाब्दिक सुविधा का उपयोग के लिए: ${r"${expression}"}

+0

मैं एक ही दृष्टिकोण का उपयोग करता हूं, जो थोड़ा बदसूरत है लेकिन काम करता है। अगर मैं जेनरेट किए गए टेम्पलेट के चर के गुणों को एक्सेस करने के लिए बाहरी टेम्पलेट के चर का उपयोग करता हूं, तो यह वास्तव में बुरा हो जाता है, जो इस तरह दिखता है: $ {r "$ {entity।"} $ {PropertyDescriptor.name}} और $ {entity.creationDate} के बाद समाप्त होता है कि संपत्ति डिस्क्रिप्टर का नाम "निर्माण दिनांक" है। –

8

तुम भी इस्तेमाल कर सकते हैं: ${"$"}{expression} आप {} नेस्टिंग संशय है यदि।

+0

अच्छा विचार, मुझे लगता है कि यह पठनीयता को बेहतर बनाता है –

+0

तिथि के लिए सुझाए गए सभी विकल्पों में से सबसे अच्छा। मेरे दिमाग में आग लगती है कि एक आसान तरीका नहीं है, जैसे '\ $' - लेकिन ऐसा नहीं है। यह लालित्य का एक अच्छा पर्याप्त अनुमान है ... – Stevel

0

मामला है जब आप गैर कच्चे तार का उपयोग करने के लिए इतना है कि आप डबल कोट, अक्षर लोप, आदि बच सकते हैं, तो आप निम्न कर सकते हैं चाहते हैं:

कल्पना कीजिए कि आप स्ट्रिंग $ उपयोग करना चाहते हैं {हैलो} - एक स्ट्रिंग के अंदर "मेरे दोस्त का दोस्त"। आप कच्चे तारों के साथ ऐसा नहीं कर सकते हैं। मैंने जो काम किया है वह है:

${"\x0024{Hello}-\"My friend's friend\""} 

मैं एस्ट्रोफ़े से बच नहीं पाया क्योंकि मैंने डबल कोट्स का उपयोग किया था।

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