zoukankan      html  css  js  c++  java
  • Freemaker语法

    包含文件

     <a href="${latestProduct.url}">${latestProduct.name}</a>

    基本语法

    • ${...}:FreeMarker将会输出真实的值来替换大括号内的表达式,这样的表达式被称为interpolation(插值)。
    • 注释:注释和HTML的注释也很相似,但是它们使用<#-- and -->来标识。不像HTML注释那样,FTL注释不会出现在输出中(不出现在访问者的页面中),因为FreeMarker会跳过它们。
    • FTL标签(FreeMarker模板的语言标签):FTL标签和HTML标签有一些相似之处,但是它们是FreeMarker的指令,是不会在输出中打印的。这些标签的名字以#开头。(用户自定义的FTL标签则需要使用@来代替#

    内置函数

    内置函数很像子变量(也像Java中的方法),它们并不是数据模型中的东西,是FreeMarker在数值上添加的。为了清晰子变量是哪部分,使用?(问号)代替,.(点)来访问它们。常用内建函数的示例:

    • user?html给出user的HTML转义版本,比如&会由&amp;来代替。
    • user?upper_case给出user值的大写版本(比如“JOHN DOE”来替代“John Doe”)
    • animal.name?cap_first给出animal.name的首字母大写版本(比如“Mouse”来替代“mouse”)
    • user?length给出user值中字符的数量(对于“John Doe”来说就是8)
    • animals?size给出animals序列中项目的个数
    • 如果在<#list animals as animal>和对应的</#list>标签中:
      • animal?index给出了在animals中基于0开始的animal的索引值
      • animal?counter也像index,但是给出的是基于1的索引值
      • animal?item_parity基于当前计数的奇偶性,给出字符串“odd”或“even”。在给不同行着色时非常有用,比如在<td class="${animal?item_parity}Row">中。

    一些内建函数需要参数来指定行为,比如:

    • animal.protected?string("Y", "N")基于animal.protected的布尔值来返回字符串“Y”或“N”。
    • animal?item_cycle('lightRow','darkRow')是item_parity更为常用的变体形式。
    • fruits?join(", ")通过连接所有项,将列表转换为字符串,在每个项之间插入参数分隔符(比如“orange,banana”)
    • user?starts_with("J")根据user的首字母是否是“J”返回布尔值true或false。

    内建函数应用可以链式操作,比如user?upper_case?html会先转换用户名到大写形式,之后再进行HTML转义,和链式使用.(点)一样

    空变量

    不论在哪里引用变量,都可以指定一个默认值来避免变量丢失这种情况,通过在变量名后面跟着一个 !(感叹号)和默认值。像下面的这个例子,当user不存在于数据模型时,模板将会将user的值表示为字符串 “visitor”。(当 user 存在时,模板就会表现出 ${user} 的值):

    <h1>Welcome ${user!"visitor"}!</h1>

     另一篇很全面的freemarker教程

  • 相关阅读:
    4月1日作业总结,成绩
    4月8日作业重点及点评
    构建之法 东北师大站 冲刺领跑
    4月1日作业重点及点评
    3月25日作业总结,成绩
    3月18日作业总结,成绩
    3月25日作业重点及点评
    python: 反射机制;
    python: 基本知识(一)
    opencv: 轮廓提取;
  • 原文地址:https://www.cnblogs.com/blog-cq/p/5508723.html
Copyright © 2011-2022 走看看