Freemarker使用说明

layout

freemarker layout主要处理具有相同内容的页面,比如每个网站的header和footer页面。

freemarker 的布局主要常见的两种方式是 #import(“文件路径”)#include(“文件路径”),其中import和include的区别在于,include常用于公共部分的页面,如果要使用<#assign username=“张三”>涉及到内部函数以及变量声明之类的,使用import进行导入,如果在import中的页面含有页面当前将不会进行渲染。 我们编写一个header和footer,其中的header使用include引入,footer页面也使用include引入。(当然freemarker 还有别的布局方式,这里只是介绍一种,请自行学习研究)

  • 创建layout布局,格式如下
<#macro name param1 param2 ... paramN>
  ...
  <!-- 嵌套内容 -->
  <#nested loopvar1, loopvar2, ..., loopvarN>
  ...
  <#return>
  ...
</#macro>

实战:

<!-- freemarker layout主要处理具有相同内容的页面,比如每个网站的header和footer页面。-->
<#--layout-->
<#macro layout title keywords description>
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <title>${title!"默认标题"}</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!--[if IE]>
        <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'/>
        <![endif]-->
        <meta name="description" content="${description!}"/>
        <meta name="keywords" content="${keywords!}"/>
        <meta name="Blog" content="${version}">

        <!-- Favicons -->
        <link rel="apple-touch-icon-precomposed" href="/favicon.ico"/>
        <#--<link rel="apple-touch-icon-precomposed" href="<@resource src=options['site_favicon']/>"/>-->
        <link rel="shortcut icon" href="/favicon.ico"/>
        <#--<link rel="shortcut icon" href="<@resource src=options['site_favicon']/>"/>-->
    </head>
    <body>
    <!-- header -->
    <#include "/_inc/header.ftl"/>
    <!-- /header -->

    <!-- content -->
    <div class="wrap">
        <!-- Main -->
        <div class="container">
            <#nested>
        </div>
    </div>
    <!-- /content -->

    <!-- footer -->
    <#include "/_inc/footer.ftl"/>

    </body>
    </html>
</#macro>
  • header.ftl内容:
<header>
    This is a header,welcome  ${name} to my web site!
</header>
  • footer.ftl内容:
<footer>
    This is a footer,welcome  ${name} to my web site!
</footer>
  • 创建hello.ftl,并引入公共部分:
<#--引入layout布局-->
<#include "_layout/layout.ftl">
<@layout "${title}" "keywords" "description">
    当前版本:${version}
</@layout>

效果
在这里插入图片描述


版权声明:本文为qq_45794678原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。