博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FreeMarker之入门实例
阅读量:5843 次
发布时间:2019-06-18

本文共 2691 字,大约阅读时间需要 8 分钟。

下载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");        //数据        Map
root=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
> mapList1=new ArrayList
>(); Map
map1=new HashMap<>(); map1.put("id", "11"); map1.put("name", "name11"); Map
map2=new HashMap<>(); map2.put("id", "22"); map2.put("name", "name22"); mapList1.add(map1); mapList1.add(map2); root.put("mapList1", mapList1); //显示生成 Writer out=new OutputStreamWriter(System.out); t1.process(root, out); out.flush(); out.close(); }}

 

 

在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}

 

转载于:https://www.cnblogs.com/zengnansheng/p/10385970.html

你可能感兴趣的文章
oracle 授权
查看>>
lv扩展磁盘空间
查看>>
java8之stream流的基本操作
查看>>
二维数组计算协方差java
查看>>
SpringBoot下Redis相关配置是如何被初始化的
查看>>
为你的AliOS Things应用增加自定义cli命令
查看>>
MongoDB 创建基础索引、组合索引、唯一索引以及优化
查看>>
百度PaddlePaddle常规赛NLP赛道火热开启
查看>>
稳了!这才是cookie,session与token的真正区别
查看>>
OSChina 周二乱弹 —— 假期余额已不足!
查看>>
前端那些事之React篇--helloword
查看>>
ios的google解析XML框架GDataXML的配置及使用
查看>>
netty-当一个客户端连接到来的时候发生了什么
查看>>
PHP_5.3.20 源码编译安装PHP-FPM
查看>>
在51CTO三年年+了,你也来晒晒
查看>>
js控制图片等比例缩放
查看>>
Java高级开发工程师面试考纲
查看>>
FreeMarker表达式
查看>>
Debian9.2 下使用vnstat查看服务器带宽流量统计
查看>>
NGINX + PHP-FPM 502
查看>>