FreeMarker笔记

来源:互联网 发布:win7软件打不开 编辑:程序博客网 时间:2024/06/16 07:07
FreeMarker
  • 模板 + 数据模型 = 输出
  • 将HTML静态页面中的内容用${...}代替,数据是在FreeMarker之外准备的
  • 模版
    • ${...}: FreeMarker将会输出真实的值来替换大括号内的表达式,这样的表达式被称为 interpolation(插值)。里面的内容是字符串。
    • FTL 标签 (FreeMarker模板的语言标签): FTL标签和HTML标签有一些相似之处,但是它们是FreeMarker的指令,是不会在输出中打印的。 这些标签的名字以 # 开头。(用户自定义的FTL标签则需要使用 @ 来代替 #)
    • 注释: 注释和HTML的注释也很相似, 但是它们使用 <#-- and --> 来标识。 不像HTML注释那样,FTL注释不会出现在输出中(不出现在访问者的页面中), 因为 FreeMarker会跳过它们。
  • 指令
    • if指令:<#if condition> ... <#elseif condition2>... <#else> ... </#if> :在conditions中可以使用比较运算符
    • include指令:<#include "/copyright_footer.html">:在模板中插入其他文件的内容
    • 内建函数:它们并不是数据模型中的东西,是 FreeMarker 在数值上添加的。使用 ?(问号)代替 .(点)来访问它们。
  • 处理不存在的变量:
    • 在变量名后面跟着一个 !和默认值。${user!"visitor"}:当 user 不存在于数据模型时, 模板将会将 user 的值表示为字符串 "visitor"
    • 也可以在变量名后面通过放置 ?? 来询问一个变量是否存在。<#if user??><h1>Welcome ${user}!</h1></#if>:将它和 if 指令合并, 那么如果 user 变量不存在的话将会忽略整个问候的代码段。
  • 空白处理
    • 剥离空白:如果对模板开启这个特性,那么它就会自动忽略 (也就是不在输出中打印出来)两种典型的多余空白。
    • compress:和剥离空白相反,这个工作是直接基于生成的输出内容, 而不是对于模板进行。
原创粉丝点击