2010-07-01 5 views
11

Meine Website hat eine konsistente Kopf- und Fußzeile, die ich auf allen Seiten haben möchte.Kopf- und Fußzeile und Freemarker

Was ist der beste Weg, dies zu tun?

Die Kopfzeile wird basierend auf der aktuellen Ansicht auch einige dynamische Daten enthalten.

P. Hat Freemarker irgendeine Art von Masterseitenfunktion? Wo kann ich eine Basisvorlage erstellen und andere Vorlagen auf der Basis erstellen?

Grundsätzlich möchte ich eine Vorlage entwerfen, die Kopf- und Fußzeile + einen Platzhalter für den Hauptinhaltsbereich hat. DANN übernehmen alle anderen Seiten die Hauptvorlage (mit Kopf- und Fußzeile) und injizieren dann die Renderausgabe der Aktion in den Hauptinhaltsbereich der Vorlage.

Antwort

1

Sie können in the freemarker online docs

den Federspezifischen Teil in the spring reference und Freemarker Teil finden (es scheint nicht, wie Freemarker Masterseiten unterstützt, aber durch rekursive Verwendung von include können Sie ein hohes Maß an Code erreichen wiederverwenden)

1

Werfen Sie einen Blick auf SiteMesh. Ich glaube, Sie werden es nützlich finden.

14

Definieren Sie ein Makro wie dies in einer Import-Bibliothek:

<#macro page title> 
    <html><head><title>${title?html}</title></head> 
    <body> 
    <!-- header section --> 
    <#nested/> 
    <!-- footer section --> 
    </body></html> 
</#macro> 

und verwenden Sie die folgende Vorlage für alle Seiten:

<#import "common.ftl" as c/> 
<@c.page title="custom page title"> 
    <!-- custom page content --> 
</@c.page>