FreeMarker include
statement docs göre, Üstbilgi yapabilir ve böylece gibi farkında şablonları footer-:FreeMarker düzenleri?
<#include "/header.ftl">
<!-- Content of my this page -->
<#include "/footer.ftl">
Ama benim web uygulaması sayfaları/görünümler yüzlerce varsa, bu gereksiz kopya makarna çok.
<#include "/header.ftl">
<@import_FTL_Somehow>
<#include "/footer.ftl">
Ve sonra her görünüm/sayfa için ayrı şablonlar oluşturmak: Ben "Hey, bir düzen olduğunu" söyleyebiliriz FreeMarker, bir "düzen" kavram gibi olsaydı çok iyi olurdu (index.ftl
, contactUs.ftl
, vb.) Ve daha sonra FreeMarkers'a hangi FTL dosyalarının düzeni kullandığını söyleyin. Bu şekilde, her bir şablon dosyasında üstbilgi/altbilgi belirtmeyi sürdürmem gerekmeyecek.
FreeMarker bu tür bir konsepti destekliyor mu?
Teşekkürler @ddekany (+1) - onların Javadocs, bu ['addAutoImport'] (http://freemarker.incubator.apache.org/docs/api/freemarker/template/Configuration.html#addAutoImport-java.lang. String-java.lang.String-) yöntemi: "* Görünmez bir #import tem ekler Tüm şablonların başında namespaceVarName olarak plateName. İthalatların sırası, bu yöntemle eklendikleri sırayla aynı olacaktır. * "** Ancak **, hala tam kullanımını anlamadım: bu yalnızca bir şablonu içe aktaracak gibi görünüyor (ya Üstbilgi veya altbilgi, ancak her ikisi de değil.) – smeeb
** Bu çözümü kullanarak 2 farklı sayfayı gösteren hızlı bir kod örneği ile cevabınızı güncellemeye ne dersiniz? ** İdeal olarak, Java kodunu burada görebiliyordum. addAutoImport '2 FTL dosyalarının nasıl göründüğünün yanı sıra çağrılır (böylece addAutoImport'un onları nasıl yedekler - üstbilgi/altbilgi '# include' ifadeleri gerektirir) - tekrar teşekkürler! – smeeb
Otomatik içe aktarma sadece bir şey eklemek için değil, benim '' '' tanımlamak için kullanılır.Böylesi her dosyanın başında bir '<#import '/lib/myutils.ftl' 'yi yedeklemelisiniz – ddekany