Freemarker

工程引入依赖

org.freemarker freemarker 2.3.23 我用maven当时引得是这个版本的jar包 ### 创建模板文件 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}部分,将使用数据模型中的部分替代输出 4、FTL 指令:FreeMarker 指令,和 HTML 标记类似,名字前加#予以区分,不会输出 ### 生成文件 第一步:创建一个 Configuration 对象,直接 new 一个对象。构造方法的参数就是 freemarker 的版本号。 第二步:设置模板文件所在的路径。 第三步:设置模板文件使用的字符集。一般就是 utf-8. 第四步:加载一个模板,创建一个模板对象。 第五步:创建一个模板使用的数据集,可以是 pojo 也可以是 map。一般是 Map。 第六步:创建一个 Writer 对象,一般创建一 FileWriter 对象,指定生成的文件名。 第七步:调用模板对象的 process 方法输出文件。 第八步:关闭流

下面是代码演示
//1.创建配置类
Configuration configuration=new Configuration(Configuration.getVersion());
//2.设置模板所在的目录
configuration.setDirectoryForTemplateLoading(new
File(“D://文件所在路径”));
//3.设置字符集
configuration.setDefaultEncoding(“utf-8”);
//4.加载模板
Template template = configuration.getTemplate(“xxx.ftl”);
//5.创建数据模型
Map map=new HashMap();
map.put(“name”, "张三 ");
map.put(“message”, “欢迎来到Freemarker!”);
//6.创建 Writer 对象 输出的文件名
Writer out =new FileWriter(new File(“d:\xxx.html”));
//7.输出
template.process(map, out);
//8.关闭 Writer 对象
out.close();

模板FTL常用 指令

assign 指令

此指令用于在页面上定义一个变量
<#assign name=“freemarker”>
名字:${name}

include 指令

此指令用于模板文件的嵌套

if 指令

<#if success=true>
正确
<#else>
错误
</#if>
if中=与==的效果是一样的;

list 指令

<#list Lists as list>
${list_index+1} 商品名称: l i s t . n a m e 价 格 : {list.name} 价格: list.name{list.price}

</#list>

内建函数

内建函数语法格式: 变量+?+函数名称
共 ${Lists?size} 条记录

将 json 字符串转换为对象
<#assign data=text?eval />

日期格式化

代码中对变量赋值:
dataModel.put(“today”, new Date());
在模板文件中加入
当前日期: t o d a y ? d a t e &lt; b r &gt; 当 前 时 间 : {today?date} &lt;br&gt; 当前时间: today?date<br>{today?time}

当前日期+时间:${today?datetime}

日期格式化: ${today?string(“yyyy 年 MM 月”)}

判断某变量是否存在:“??”

<#if aaa??>
aaa 变量存在
<#else>
aaa 变量不存在
</#if>

比较运算符

表达式中支持的比较运算符有如下几个:
1 =或者==:判断两个值是否相等.
2 !=:判断两个值是否不等.
3 >或者 gt:判断左边值是否大于右边值
4 >=或者 gte:判断左边值是否大于等于右边值
5 <或者 lt:判断左边值是否小于右边值
6 <=或者 lte:判断左边值是否小于等于右边值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值