2010-07-01 15 views
11

Il mio sito web ha un'intestazione e un piè di pagina coerenti che desidero su tutte le pagine.header and footer and freemarker

Qual è il modo migliore per farlo?

L'intestazione avrà anche alcuni dati dinamici, in base alla vista corrente.

P.S Il freemarker ha qualche tipo di funzionalità della pagina principale? Dove posso creare un modello di base, quindi creare altri modelli sulla base?

In sostanza, desidero progettare un modello che abbia un'intestazione e un piè di pagina + un segnaposto per l'area del contenuto principale. THEN, tutte le altre pagine erediteranno il modello principale (con intestazione + piè di pagina) e quindi iniettano l'output di rendering dell'azione nell'area di contenuto principale dei modelli.

risposta

1

È possibile trovare la parte specifica molla in the spring reference e la parte freemarker in the freemarker online docs

(Non sembra come Freemarker supporta le pagine master, ma attraverso l'uso ricorsivo di include è possibile ottenere un elevato livello di codice riuso)

1

Dai un'occhiata allo SiteMesh. Credo che lo troverai utile

14

Definire una macro come questo in una libreria di importazione:

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

e utilizzare il seguente modello per tutte le vostre pagine:

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