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教程

  • 相关阅读:
    Coursera机器学习week11 单元测试
    关于 TypeReference 的解释
    getModifiers 方法解释。
    instanceof isInstance isAssignableFrom 比较
    elasticsearch 基础 语法总结
    kibana 启动 关闭 和进程查找
    MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别
    spring boot 项目 热启动
    java zip 压缩文件
    Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
  • 原文地址:https://www.cnblogs.com/blog-cq/p/5508723.html
Copyright © 2011-2022 走看看