下载freemarker包,导入到工程 以freemarker-2.3.16为例
package com.zns.test;import java.io.File;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.zns.bean.Person;import freemarker.template.Configuration;import freemarker.template.Template;public class Test1 { public static void main(String[] args) throws Exception { //创建Freemarker配置实例 Configuration configuration=new Configuration(); configuration.setDirectoryForTemplateLoading(new File("mytemplates")); //加载模板文件 Template t1=configuration.getTemplate("1.ftl"); //数据 Maproot=new HashMap<>(); root.put("userid", 1); root.put("username", "张三"); root.put("score", 80); List list1=new ArrayList<>(); list1.add(new Person(1, "张三")); list1.add(new Person(2, "李四")); root.put("list1", list1); List
在mytemplates下增加一个1.ftl文件
hello,${username}<#if userid==1> userid为1 <#if userid==1> userid为1<#else> userid不为1 <#if score gte 80> 优秀<#elseif score gte 70> 良好<#elseif score gte 60> 及格<#else> 不及格 <#switch username> <#case "张三"> 张三 <#break> <#case "李四"> 李四 <#break> <#default> d <#switch userid> <#case 1> 111 <#break> <#case 2> 222 <#break> <#default> d <#-- ${item_index}为列表索引 --><#list list1 as item> ${item_index + 1} --- ${item.id},${item.name} <#-- 遍历List map --><#list mapList1 as item> ${item_index + 1} --- ${item.id},${item.name} <#-- 定义变量 用assign --><#assign productid="100">产品id为${productid}<#-- 自定义宏 用macro --><#macro macro1>宏1...
<#-- 调用宏 --><@macro1> <#-- 带参数的宏 --><#macro macro2 param1 param2> 参数1为${param1},参数2为${param2} <#-- 调用带参数的宏 --><@macro2 param1="张三" param2="李四"> <#-- nested宏 --><#macro macro3> 你好啊,<#nested> <@macro3>张三
一个ftl引用另外一个ftl
a.ftl如下
<#-- 引入b.ftl --><#import "b.ftl" as bb />${bb.productname}<@bb.macro1 param1="张三" param2="李四" />
b.ftl如下
<#assign productname="产品1"><#macro macro1 param1 param2> 参数1为${param1},参数2为${param2}