Fork me on GitHub

Html templating

好. HTML是此Internet事物的核心. Ninja使用Freemarker作为模板引擎.

如果您想了解Freemarker可以完成的所有高级工作,请查阅其出色的手册 .

Basic HTML templating

模板存储在文件夹views /中.

一个基本的模板-例如/views/basic.ftl.html看起来就像:

<html>
    <head>
        <title>My title</title>
    </head>
<html>

看起来不太特别. 事实并非如此.

默认情况下,Freemarker模板文件必须以.ftl.html结尾 ,但是可以通过在配置文件中设置属性freemarker.suffix来定义其他扩展名.

Using subviews nested templates

通常,您想重用应用程序的某些部分. 比方说一个身体. 和页脚. Freemarker使这一过程变得非常简单.

让我们从一个可以被许多视图重复使用的布局开始-defaultLayout.ftl.html:

<#macro myLayout title="Layout example">
<!DOCTYPE html>
<html lang="en">
<head>
    <title>${title}</title>
<body>

    <#nested/>

    <#include "footer.ftl.html"/>

</body>
</html>
</#macro>

<#macro myLayout title ="布局示例">定义变量$ title为其默认标题. 将其他视图嵌套到其中由<#nested />完成 . 包括其他模板可以通过<#include" footer.ftl.html" />完成 .

footer.ftl.html看起来像:

<hr>
<footer>
    <p>Company </p>
</footer>

然后,主视图basic.ftl.html如下所示:

<#import "defaultLayout.ftl.html" as layout> 
<@layout.myLayout "Home page">    

    <h1>my text</h1>

</@layout.myLayout>

我们将主模板<#import" defaultLayout.ftl.html"导入为layout> ,并将默认标题重新定义为" Home Page". 其余模板将包含在<#nested />中 .


by  ICOPY.SITE