Freemarker常用语法简例

为使用Freemarker模板时的关键性语法编写代码示例或说明,主要用于回忆性检索或速查,阅读需要一定代码基础或对Freemarker有了解。
常用Freemarker语法简例
常用Freemarker语法简例(二)

注释

<#-- 我是注释 -->

配置

<#-- Use UTF-8 charset for URL escaping from now: -->
<#setting url_escaping_charset="UTF-8">

赋值

<#assign seq = ["foo", "bar", "baz"]>
<#assign  n= 1>
<#assign x++>
<#assign x="Hello ${user}!">

逻辑与比较运算

逻辑运算:|| && !

比较运算 == != > < >= <= gt lt gte lte (g: greater、t: than、e: equal、l: less)
FreeMarker进行的是精确的比较,= 或 != 两边的表达式的结果都必须是标量,而且两个标量都必须是相同类型

实际逻辑:
a > 0  && c < 0  ||  d <=  0 && b >=0
为避免Freemark对 > < 解释为标签可作如下替换
a gt 0 && c lt 0 ||  d lte 0 && b gte 0

if else

if 命令可嵌套使用

<#if condition && condition_1>
  ...
<#elseif condition2>
  ...
<#elseif condition3>
  ...
...
<#else>
   <#if  condition>
    ...
   </#if>
</#if>

循环处理

<#list items as item>
    ${item?index} 从0开始的索引
    ${item?counter}  从1开始的索引
    ${item?is_first} 是否为第一项
    ${item?is_last} 是否为最后一项
    ${item?is_even_item} 索引根据0计算,是否为奇数,1、3、5...
    ${item?is_odd_item} 索引根据0计算,是否为偶数,0、2、4
    ${item?has_next} 当前项后面是否为最后一项,与 is_last 结果相反
<#list>

NULL/不存在变量(变量丢失)

FreeMarker 绝不能容忍引用不存在的变量, 除非明确地告诉它当变量不存在时如何处理。
一个不存在的变量和一个是 null 值的变量, 对于FreeMarker来说是一样的,所以这里所指的"丢失"包含这两种情况。

通过!默认值 在变量不存在(或为null)时,返回默认值

user不存在时,值为 visitor
<h1>Welcome ${user!"visitor"}!</h1>

info 不存在 或者 gender 属性不存在 或者 name 属性不存在
使用()可处理多层级结构的情况
<span>gender is : ${(info.gender.name)!"man"}!</span>

通过??判定变量不存在,需要与 if 合并使用

user不存在时,
<#if user??><h1>Welcome ${user}!</h1></#if>

info 不存在 或者 gender 属性不存在 或者 name 属性不存在
使用()可处理多层级结构的情况
<#if (info.gender.name)??><span>gender is : ${(info.gender.name)!"man"}!</span><#if>

include组合其他模板或页面

<#include "/common/copyright.ftl">
匹配 common/copyright.ftl

<#include "/common/*/copyright.ftl">
模糊匹配
匹配 common/任意/中间/目录/copyright.ftl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值