FREEMAKE语法介绍 下载本文

内容发布更新时间 : 2024/11/14 14:52:45星期一 下面是文章的全部内容请认真阅读。

FREEMAKE语法介绍

1.变量初始化标签

语法

<#assign x=5> 显示变量 ${x}

显示结果为: 5

2.条件判断标签

<#assign age=60>

<#if (age>=60) > 你老了 <#else> 你还年轻

显示结果为: 你老了

3.循环标签

list可以java的List对象,list可以放置中可以放置任意java对象。

我们新建一个Pesson对象。 class person { private String name;

private int age;

setter;getter;省略 }

List list=new ArrayList();

Person p=new Person(“张山”,20); list.add(p);

p=new Person(“李四”,23);

<#list list as person>

姓名:${person.getName()},年龄:${person.getAge();}

也可以如下写法:

<#list list as person>

姓名:${person.name},年龄:${person.age}

如果传入的是Map对象可以使用键值进行访问,测试代码如下:

List list=new ArrayList();

Map m=new HashMap(); m.put(\,\张山\); m.put(\,20);

list.add(m);

m=new HashMap(); m.put(\,\李四\); m.put(\,25);

list.add(m);

标签写法:

<#list list as person>

姓名:${person.name},年龄:${person.age}

如果需要在模版中输出 ${x},相关的模版如何写呢?

模版写法:

${r\

在引号或单引号之前加r输出原生字符串。

4.序列访问

指定一个文字的序列,使用逗号来分隔其中的每个子变量,然后把整个列表放到方括号 中。例如:

<#list [\as x> ${x}

将会打印出:

winter spring summer autumn

5.算术运算

算数运算包含基本的四则运算和求模运算,运算符有: 加法:+ 减法:- 乘法:* 除法:/

求模(求余):%

${100 – x*x} ${x/2} ${12}

假设x 是5,就会打印出:

75 2.5 2

6.获取数字整数部分

通常来说,FreeMarker 不会自动将字符串转换为数字,反之会自动进行。 有时我们只想获取计算结果的整数部分,这可以使用内建函数int 来解决。

${(x/2)?int} ${1.1?int} ${1.999?int} ${-1.1?int} ${-1.999?int}

仍然假设x 的值是5,那么将会输出:

2 1 1 -1 -1

7.比较运算

测试两个值相等使用=(或者采用Java 和C 语言中的==,二者是完全等同的。) 测试两个值不等使用!=。例子中假设user 是”Big Joe”。

<#if user = \> It is Big Joe

<#if user != \> It is not Big Joe

对数字和日期类型的比较,也可以使用<,<=,>=和>。不能把它们当作字符串来比 较。

<#if x <= 12>

x is less or equivalent with 12

8.逻辑操作

常用的逻辑操作符: ??逻辑或:|| ??逻辑与:&& ??逻辑非:!

逻辑操作符仅仅在布尔值之间有效,若用在其他类型将会产生错误导致模板执行中止。 例如:

<#if x < 12 && color = \

We have less than 12 things, and they are green.

<#if !hot> <#-- here hot must be a boolean --> It's not hot.

9.Freemaker内键函数

正如其名,内建函数提供始终可用的内置功能。内建函数以?形式提供变量的不同形式 或者其他信息。使用内建函数的语法和访问哈希表子变量的语法很像,除了使用?号来代替 点,其他的都一样。例如得到字符串的大写形式:user?upper_case。

在参考文档中可以查到所有内建函数的资料。现在,我们只需了解一些重要的内建函数 就行了。

??字符串使用的内建函数:

??html: 字符串中所有的特殊HTML 字符都需要用实体引用来代替(比如<代 替<)。

??cap_first:字符串的第一个字母变为大写形式 ??lower_case:字符串的小写形式 ??upper_case:字符串的大写形式 ??trim:去掉字符串首尾的空格 ??序列使用的内建函数: ??size:序列中元素的个数 ??数字使用的内建函数:

??int:数字的整数部分(比如-1.9?int 就是-1)

示例:

${test?html}

${test?upper_case?html}

假设字符串test 存储”Tom & Jerry”,那么输出为: