FreeMarker在Java Project的简单使用

  FreeMarker是一个基于模板生成文本输出的工具,下面简单介绍一下FreeMarker组件的使用:

  首先在根目录下建立一个templates文件夹,放置我们生出的FreeMarker模板。

  然后就是建立一个Java文件,开始去创建一个连接,然后利用模板输出数据。

  1.创建FreeMarker的配置实例

	/**
	 *创建FreeMarker的配置实例 
	 *@author Guo
	 */
	Configuration config = new Configuration();
	config.setDirectoryForTemplateLoading(new File("templates"));

  2.创建数据的模型,也就是我们放置数据的地方,这里默认是用Map集合是存放数据,然后通过key去value 

        /**
	 * 创建数据模型
	 * 也就是相当于数据源
	 * @author Guo
	 */
	Map map = new HashMap();
	map.put("user", "xujianguo");    

  3.加载模板文件,在这里放入你在templates要使用的ftl

        /**
	 * 加载模板文件
	 * @author Guo
	 */
	Template template = config.getTemplate("t1.ftl");

  4.生出数据并打印,这里我在console下打印信息

/**
	 * 生出数据并打印
	 * @author Guo
	 */
	Writer writer = new OutputStreamWriter(System.out);
	template.process(map, writer);
	writer.flush();
	writer.close();

  我的ftl文件的信息很简单,就这么一句

hello, I am ${user}, nice to meet you!

  ftl文件就会在传过来的map集合中找user这个key,然后就对应找到的它的value了。

  下面介绍一下在ftl中常见的指令:

  1.if指令

<#if user == "xujianguo">
  Yes, I am.
</#if>

ftl中可以使用==的判断表达式,如果真的话就输出标签之间的内容,当然你还可能遇到下面这种情况的表达:

<#if num gt 22>
	old!
	<#else>
	young!
</#if>

这里的gt是大于的意思,如果为真的话就真行old!如果假的话就执行else标签后面的语句。

  2.list指令

List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
map.put("list", list);
<#list list as a>
	${a}
</#list>

list针对的是集合,如果你放进的是集合的话,可以通过list指令来遍历它,标签中的a下相当于遍历当前的对象,通过${}就可以拿出里面的值了。

  3.include指令

<#include "1.txt" />

通过简单的include指令就可以将1.txt文件包含进当前的ftl文件中了。

  4.macro指令

<#macro m1>
	<b>aaabbbccc</b>
	<b>dddeeefff</b>
</#macro>
<@ m1 />

通过这种macro的宏定义,就是定义一个宏m1,宏的内容就是macro标签里的内容,然后通过<@ m1>来调用里面的内容。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值