Freemarker快速上手
官方网站:freemarker.apache.org
三个操作步骤:
1、加载模板
2、创建数据
3、输出
package com.imooc.learn; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Map; import freemarker.core.ParseException; import freemarker.template.Configuration; import freemarker.template.MalformedTemplateNameException; import freemarker.template.Template; import freemarker.template.TemplateException; import freemarker.template.TemplateNotFoundException; public class FreeMarkerOne { public static void main(String[] args) throws TemplateNotFoundException, MalformedTemplateNameException, ParseException, IOException, TemplateException { /** * 学习freemarker */ //创建核心的配置对象 Configuration config = new Configuration(Configuration.VERSION_2_3_30); //设置加载的目录 config.setClassForTemplateLoading(FreeMarkerOne.class, ""); //得到模板对象 Template t = config.getTemplate("freemarker.ftl"); //创建数据 Map data = new HashMap(); data.put("site", "百度"); data.put("url", "http://www.baidu.com"); //输出结果 t.process(data, new OutputStreamWriter(System.out)); } }
package com.imooc.learn; import java.util.Date; import java.util.Map; public class Computer { private String sn;//序列号 private String model;//型号 private int state; //状态 1-在用 2-闲置 3-报废 private String user; //使用人 private Date dop;//采购日期 private Float price; //购买价格 private Map info;//电脑配置信息 public Computer() { } public Computer(String sn, String model, int state, String user, Date dop, Float price, Map info) { super(); this.sn = sn; this.model = model; this.state = state; this.user = user; this.dop = dop; this.price = price; this.info = info; } public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } public int getState() { return state; } public void setState(int state) { this.state = state; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public Date getDop() { return dop; } public void setDop(Date dop) { this.dop = dop; } public Float getPrice() { return price; } public void setPrice(Float price) { this.price = price; } public Map getInfo() { return info; } public void setInfo(Map info) { this.info = info; } }
package com.imooc.learn; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Date; import java.util.HashMap; import java.util.Map; import freemarker.core.ParseException; import freemarker.template.Configuration; import freemarker.template.MalformedTemplateNameException; import freemarker.template.Template; import freemarker.template.TemplateException; import freemarker.template.TemplateNotFoundException; public class FreeMarkerOne { public static void main(String[] args) throws TemplateNotFoundException, MalformedTemplateNameException, ParseException, IOException, TemplateException { /** * 学习freemarker */ //创建核心的配置对象 Configuration config = new Configuration(Configuration.VERSION_2_3_30); //设置加载的目录 config.setClassForTemplateLoading(FreeMarkerOne.class, ""); //得到模板对象 Template t = config.getTemplate("freemarker.ftl"); //创建数据 Map data = new HashMap(); //实例化电脑配置 Map对象 Map info = new HashMap(); //电脑cpu info.put("cpu", "i5"); //电脑内存 info.put("momery", "16G"); //实例化Computer对象 Computer c1 = new Computer("857","MacPro",1,"admin",new Date(),13000f,info); data.put("computer", c1); data.put("site", "百度"); data.put("url", "http://www.baidu.com"); data.put("date", new Date()); data.put("number", 832456.8907); //输出结果 t.process(data, new OutputStreamWriter(System.out)); } }
<#--freemarker取值 --> ${site}-${url} <#-- ?string 格式化--> ${date?string("yyyy年MM月dd日 HH:mm:ss")} <#-- 默认值 --> ${author!"未名意志"} ${number?string("0.00") } <#-- 对象 --> 序号:${computer.sn} 型号:${computer.model} 使用状态:${computer.state} 使用者:${computer.user} 日期:${computer.dop?string("yyyy年MM月dd日")} 价格:${computer.price?string("0.00")} ---------------------------------------- 电脑配置 cpu:${computer.info["cpu"]} momery:${computer.info["momery"]}
分支判断
<#if computer.state == 1> 使用状态:在使用 <#elseif computer.state == 2> 使用状态:闲置 <#elseif computer.state == 3> 使用状态:废弃 </#if> <#-- ?? 是否为空 --> <#if author??> 使用者:${computer.user} </#if> <#switch computer.state> <#case 1> 使用状态:在使用 <#break> <#case 2> 使用状态:闲置 <#break> <#case 3> 使用状态:废弃 <#break> <#default> 什么都没有 <#break> </#switch>
List 迭代列表
Freemarker内建函数
replace words?replace("blood","*********")
中文学习官网:freemarker.foofun.cn 来学习内建函数