FreeMarker include
statement docs के अनुसार, आप header- कर सकते हैं और इतने तरह अवगत टेम्पलेट्स footer-:फ्रीमार्कर लेआउट?
<#include "/header.ftl">
<!-- Content of my this page -->
<#include "/footer.ftl">
लेकिन अगर अपने वेब ऐप्लिकेशन के पृष्ठों/विचारों के सैकड़ों है, इस निरर्थक प्रतिलिपि पास्ता का एक बहुत है।
<#include "/header.ftl">
<@import_FTL_Somehow>
<#include "/footer.ftl">
और फिर प्रत्येक दृश्य/पेज के लिए अलग से खाका बनाने: यह अगर वहाँ FreeMarker, में एक "लेआउट" अवधारणा मैं कहाँ कह सकते हैं "अरे, यहाँ एक लेआउट है" की तरह था बहुत अच्छा होगा (index.ftl
, contactUs.ftl
, आदि) और फिर फ्रीमार्कर्स को बताएं जो एफटीएल फाइलें लेआउट का उपयोग करती हैं। इस तरह मुझे प्रत्येक टेम्पलेट फ़ाइल में हेडर/फ़ूटर निर्दिष्ट करना नहीं होगा।
क्या फ्रीमार्कर इस तरह की अवधारणा का समर्थन करता है?
धन्यवाद @ddekany (+1) - उनके जावाडॉक्स से, यह ['addAutoImport'] (http://freemarker.incubator.apache.org/docs/api/freemarker/template/Configuration.html#addAutoImport-java.lang। स्ट्रिंग-जावा। Lang.String-) विधि: "* एक अदृश्य # आयात टेम्पलेट जोड़ता है सभी टेम्पलेट्स की शुरुआत में नामस्थान के रूप में प्लेटनाम। आयात का आदेश उसी विधि के समान होगा जिसमें उन्हें इस विधि के साथ जोड़ा गया था। * "** हालांकि **, मैं अभी भी इसके सटीक उपयोग को समझ नहीं रहा हूं: ऐसा लगता है कि यह केवल एक टेम्पलेट आयात करेगा (या तो हेडर या पाद लेख, लेकिन दोनों नहीं) – smeeb
** किसी भी मौके पर आप एक त्वरित कोड उदाहरण के साथ अपना उत्तर अपडेट करने के इच्छुक होंगे, इस समाधान का उपयोग करके 2 अलग-अलग पेज दिखा रहे हैं? ** आदर्श रूप में, मैं जावा कोड देख सकता हूं जहां ' addAutoImport' कहा जाता है, साथ ही 2 एफटीएल फाइलें किस तरह दिखती हैं (इसलिए मैं देख सकता हूं कि 'addAutoImport' उन्हें अनावश्यक रूप से कैसे रोकता है - हेडर/फ़ूटर '# शामिल' बयानों की आवश्यकता होती है)। धन्यवाद फिर से! – smeeb
ऑटो-आयात है केवल 'my' को परिभाषित करने के लिए उपयोग किया जाता है, वास्तव में कुछ भी डालने के लिए नहीं। यह प्रत्येक फ़ाइल की शुरुआत में' <#import '/lib/myutils.ftl' को मेरे> के रूप में छोड़ना है, क्योंकि आप बॉयलरप्लेट कोड से अधिक से बचना चाहते थे जितना संभव हो। – ddekany