FreeMarker模板引擎
第1章 FreeMarker快速入门
1-1 模板引擎与FreeMarker
什么是模板引擎
模板引擎的目标是”数据+模板=结果”
模板引擎将数据与展现有效”解耦"
主流模板引擎:JSP、Freemarker、Beetl
1-2 Freemarker快速上手
FreeMarker的执行步骤:
1、加载模板
Configuration config=new Configurarion(Configurarion.VERSION_2_3_28(FreeMarker的版本号));(创建核心配置对象)
//设置加载目录
config.setClassForTemplateLoading(FreemarkerSample1.class,"")(在类FreemarkerSample1所在的包中加载指定文件,“”代表当前包)
//得到模板对象
Template t=config.getTemplate(“sample1.ftl”);
2、创建数据
Map<String,Object> data=new HashMap<>();
data.put(“site”,“百度”);
data.put(“url”,“http://www.baidu.com”);
3、产生输出
t.process(data,new OutputStreamWriter(System.out)(将System.out从字节流转换为字符流));
import freemarker.template.TemplateNotFoundException;
public class FreemarkerSample1 {
public static void main(String[] args) throws TemplateNotFoundException, MalformedTemplateNameException, ParseException, IOException, TemplateException {
//1. 加载模板
//创建核心配置对象
Configuration config = new Configuration(Configuration.VERSION_2_3_28);
//设置加载的目录
config.setClassForTemplateLoading(FreemarkerSample1.class, "");
//得到模板对象
Template t = config.getTemplate("sample1.ftl");
//2. 创建数据
Map<String,Object> data = new HashMap<String,Object>();
data.put("site", "新浪");
data.put("url", "http://www.sina.com");
data.put("date", new Date());
data.put("number", 837183.883217);
Map info = new HashMap();
info.put("cpu", "i5");
Computer c1 = new Computer("1234567" , "ThinkPad" , 1 , "李四" , new Date() , 12900f , info);
data.put("computer", c1);
//3. 产生输出
t.process(data, new OutputStreamWriter(System.out));
}
}
<#-- Freemarker取值 -->
${site}
${url}
<#-- !默认值 -->
${author!"不存在的属性"}
<#-- ?string格式化输出 -->
${date?string("yyyy年MM月dd日 HH:mm:ss SSS")}
${number?string("0.00")}
<#if computer.sn == "1234567">
重要设备
</#if>
SN:${computer.sn}
型号:${computer.model}
<#if computer.state == 1>
状态:正在使用
<#elseif computer.state == 2>
状态:闲置
<#elseif computer.state == 3>
状态:已作废
</#if>
<#switch computer.state>
<#case 1>
状态:正在使用
<#break>
<#case 2>
状态:闲置
<#break>
<#case 3>
状态:已作废
<#break>
<#default>
状态:无效状态
</#switch>
<#-- ??代表判断对象是否为空,true不为空,false为空 -->
<#if computer.user??>
用户:${computer.user}
</#if>
采购时间:${computer.dop?string("yyyy年MM月dd日")}
采购价格:${computer.price?string("0.00")}
配置信息:
--------------
CPU:${computer.info["cpu"]}
内存:${computer.info["memory"]!"无内存信息"}
来源:CSDN
作者:紫蝶侠
链接:https://blog.csdn.net/yangshengwei230612/article/details/104106389