header and footer and freemarker

Blankman picture Blankman · Jul 1, 2010 · Viewed 7.2k times · Source

My website has a consistant header and footer that I want on all pages.

What is the best way to do this?

The header will have some dynamic data also, based on the current view.

P.S Does freemarker have any sort of master page functionality? Where I can create a base template, then have other templates build upon the base?

Basically I want to design a template that has header and footer + a place holder for the main content area. THEN, all other pages will inherit the main template (with header + footer), and then inject the action's render output into the templates main content area.

Answer

Jiří Vypědřík picture Jiří Vypědřík · Jun 19, 2011

Define a macro like this in an import library:

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

and use the following template for all your pages:

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