hello.ftlh
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<#-- 引入外部的宏定义-->
<#import './mymacro.ftlh' as com>
<@com.book bs=["三国演义","水浒传"]>
<h1>hello javaboy!</h1>
</@com.book>
<#-- 宏定义-->
<#macro book bs>
<table border="1">
<#list bs as b>
<tr>
<td>${b}</td>
</tr>
</#list>
<#-- 找到下面定义的 h1 标签-->
<#nested >
</table>
<#nested>
</#macro>
<@book ["三国演义","水浒传"]>
<h1>hello javaboy!</h1>
</@book>
<#-- 引入另一个页面值-->
<#include './javaboy.ftlh'>
<#-- 当想直接输出,不用freemarker-->
<#noparse >
<#include './javaboy.ftlh'>
</#noparse>
<#-- 指令-->
<div>
<#assign age=23>
<#if (age>60)>老年人
<#elseif (age>40)>中年人
<#elseif (age>20)>青年人
<#else> 少年人
</#if>
</div>
<div>
<#assign age=99>
<#switch age>
<#case 23>23<#break>
<#case 24>24<#break>
<#default>9999
</#switch>
</div>
<#-- 空值处理-->
<#-- 第一种:如果没有定义就显示aaa 字符串-->
<div>${aaa!"aaa"}</div>
<#-- 第二种-->
<div>
<#if aaa??>
aaa
</#if>
</div>
<#-- 逻辑运算 -->
<div>
<#assign age=99>
<#if age=99 && 1==1>age=99 && 1==1</#if>
<#if age=99 || 1==0>age=99 || 1==0</#if>
<#if !(age gt 99)>!(age gt 99)</#if>
</div>
<#-- 比较运算-->
<div>
<#assign age=99>
<#if age=99>age=99</#if>
<#if (age > 99)>age gt 99</#if>
<#if age gt 99>age gt 99</#if>
<#if age gte 99>age gte 99</#if>
<#if age lt 99>age lt 99</#if>
<#if age lte 99>age lte 99</#if>
<#if age!=99>age!=99</#if>
<#if age==99>age==99</#if>
</div>
<#-- 运算-->
<div>
<#assign age=99>
<div>${age*99/99+1}</div>
</div>
<#-- 集合的遍历,当想终止时,可以使用<#break>-->
<#-- list集合相加,必须类型一样-->
<#list [1,2,3] + [4,5,6] as x>
<div>${x}</div>
</#list>
<#-- map集合相加 -->
<#list (map + {"address":"深圳"})?key as key>
<div>${key}</div>
</#list>
<#-- 字符串的拼接-->
<div>${"hello ${username}"}</div>
<div>${"hello"+username}</div>
<#-- 字符串截取 第一个字符到第三个字符串-->
<div>${username[0]}${username[2]}</div>
<div>${username[1..2]}</div>
<table border="1px">
<#list list as user>
<tr>
<td>${user.name}</td>
<td>${user.pass}</td>
<#-- 下标-->
<td>${user_index}</td>
<#-- 判断是否还有下一个-->
<td>${user_has_next?string("yes","no")}</td>
</tr>
</#list>
</table>
<#-- 输出结合的某一个值-->
<div>${list[1].address}</div>
<#-- 输出集合的3-5-->
<table border="1px">
<#list list[3..5] as user>
<tr>
<td>${user.name}</td>
<td>${user.pass}</td>
</tr>
</#list>
</table>
<#assign userinfo={"name":"java","address":"上海"}>
<#-- 遍历map-->
<#list userinfo?key as key>
<div>${key}-${userinfo[key]}</div>
</#list>
<#--输出map-->
<div>${userinfo.name}</div>
<div>${userinfo.address}</div>
<#list 1..5 as x>
<div>${x}</div>
</#list>
<#-- 集合-->
<#list ["java","php"] as x>
<div>${x}</div>
</#list>
<#assign flag=true>
<div>${flag?string("yes",no)}</div>
<#assign price=99>
<div>${price?string.currency}</div>
<div>${price?string.person}</div>
<div>${"hello,我是直接输出的字符串"}</div>
<div>${"C:\\"}</div>
<table border="1px">
<#list list as user>
<tr>
<td>${user.name}</td>
<td>${user.pass}</td>
</tr>
</#list>
</table>
</body>
</html>
mymacro.ftlh
<#macro book bs>
<table border="1">
<#list bs as b>
<tr>
<td>${b}</td>
</tr>
</#list>
<#-- 找到下面定义的 h1 标签-->
<#nested >
</table>
<#nested>
</#macro>