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

  • 相关阅读:
    flash做的按扭突然在页面上获取不到焦点之后
    收集 关于js的接口和 继承实现的代码例子
    从我丢失了;号 之后说开来去
    你真的会写JavaScript吗?
    json.js + jquery 在 ie7下 的 bug
    如何减少浏览器的repaint和reflow? [转]
    2012我们需要什么样的前的工程师
    JavaScript是否可实现多线程 — 深入理解JavaScript定时机制
    是时候了,我们需要前端架构师
    JS事件模型小结
  • 原文地址:https://www.cnblogs.com/blog-cq/p/5508723.html
Copyright © 2011-2022 走看看