if.....elseif的使用
模板文件:
<!DOCTYPE html>
<html>
<head>
<meta
charset="UTF-8">
<title>看性别</title>
</head>
<body>
<h1>
<#if user.sex=="男">
${user.name}是一个男生
<#elseif user.sex=="女">
${user.name}是一个女生
<#else>
${user.name}的性别有误
</#if>
</h1>
</body>
</html>
(2)传入模板的数据模型:
//其中user类是包含有名称和性别两个属性的用户类
User user = new User("freeMK","男");
data.put("user",user);
List的使用
(1)模板文件:
<!DOCTYPE html>
<html>
<head>
<meta
charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<#list list as user >
<b>${user.name}是一个${user.sex}生</b> <br/>
</#list>
</body>
</html>
(2)传入模板的数据模型:
//其中user类是包含有名称和性别两个属性的用户类
List<User> list = new ArrayList<User> ();
list.add(new User("张三","女"));
list.add(new User("李四","男"));
list.add(new User("王五","男"));
data.put("list",list);
3.3 方法的使用
其中用关键字macro用来声明方法,macro后面第一个参数是方法名,剩下几个数方法的形参。通过@m2来调用方法,形参的赋值用“=”,例子如下:
(1)模板文件:
<!DOCTYPE html>
<html>
<head>
<meta
charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<#macro m2 a b c >
${a}--${b}--${c}
</#macro>
<h1>
<@m2 a="sss" b="wwww" c="zzz" />
</h1>
</body>
</html>
(2)传入模板的数据模型:
//没有数据传入
Include和import的使用
(1)模板文件:
<!DOCTYPE html>
<html>
<head>
<meta
charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<#include "includeFile.ftl" />
<#import "importFile.ftl" as import1/>
${import1.data}
</body>
</html>
includeFile.ftl内容如下:
<h1>
${data1!"data1的值为null"}
</h1>
这里需要注意的是:模板中使用的值,也就是接收数据模型的值不能为空,例如这里的data1就不能为空,为空会直接报错。一般为了防止这中错误会在要接收的数据的变量的后面加一个感叹号“!”用来判断该变量是否为空,“!”后面还可以加一个双引号包裹的字符串。倘若该变量真是为空则把双引号里面的值赋给该变量。
ImportFile.ftl内容如下:
<#--assign关键字用来定义模板里面的变量-->
<#assign data="import的数据">
还需要注意的是:freemarker中注释是用<#-- -->。
(2)传入模板的数据模型:
//这里没有值传入,故意不传data1这个变量的值,来测试“!”的作用