Freemarker使用笔记

什么是 FreeMarker?

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。

定义变量

<#assign name1=value1 name2=value2 ... nameN=valueN><#assign same as above... in namespacehash><#assign name>
  capture this
</#assign><#assign name in namespacehash>
  capture this
</#assign>

include 标签引入其他文件模板文件

<#include "/copyright_footer.html">

if elseif else 标签使用 

<#if condition> </#if>

<#if animals.python.price < animals.elephant.price>
  Pythons are cheaper than elephants today.
<#elseif animals.elephant.price < animals.python.price>
  Elephants are cheaper than pythons today.
<#else>
  Elephants and pythons cost the same today.
</#if>

 

list标签遍历数组

<ul>
<#list misc.fruits as fruit>
  <li>${fruit}
</#list>
</ul>

 以上遍历在数组为空的情况下,会生成<ul></ul>标签。再有些情况下,我们希望避免此类情况。我们可以这样遍历数组,如下代码:

<#list misc.fruits>
  <ul>
    <#items as fruit>
      <li>${fruit}
    </#items>
  </ul>
</#list>

如果我们想要输出<p>Fruits: orange, banana类型格式数据

那么我们该如何遍历数组呢?强大的freemarker也提供了支持,请看如下代码:

<p>Fruits: <#list misc.fruits as fruit>${fruit}<#sep>, </#list>

 注意:<#sep>, </#sep>,只有当集合List还有下一个元素时,标签语言才会被执行,保证最后一个没有

如果集合为空时,会输出<p>Fruits:,此时是我们不想要的结果,list标签还有类似if标签的功能,也可以使用else标签。

<p>Fruits: <#list misc.fruits as fruit>${fruit}<#sep>, <#else>None</#list>

 实现类似的功能我们还可以这样写:

<p>Fruits: ${fruits?join(", ", "None")}

就是如此简单。

最后我们可以综合使用以上标签:listitemssepelse

<#list misc.fruits>
  <p>Fruits:
  <ul>
    <#items as fruit>
      <li>${fruit}<#sep> and</#sep>
    </#items>
  </ul>
<#else>
  <p>We have no fruits.
</#list>
处理null值,或者误输入不存在的数据模型model,设置默认值,我们该如何处理呢?用!。

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

如果我们想判断这个变量是否丢失或者不存在的情况。我们可以在这个变量后面添加双问号??,譬如如下:

<#if user??><h1>Welcome ${user}!</h1></#if>

字符串内置函数:

英文文档参考:https://freemarker.apache.org/docs/ref_builtins_string.html

中文文档参考:http://freemarker.foofun.cn/ref_builtins_string.html

以上是我工作常用的标签指令。

详细更多可以参考中文官网:http://freemarker.foofun.cn/index.html

英文官网:https://freemarker.apache.org/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值