JAVA编码(23)——FreeMmarker代码实例

Author:xushuyi

项目工程中引入:freemarker-2.3.16.jar 包

后台逻辑代码:

package com.sxt;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;

import org.junit.Test;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class FreeMarkerT {
	
	@Test
	public void test(){
		freeMarkerSumup01();
	}
	
	/**
	 * 对freeMarker进行总结
	 */
	public void freeMarkerSumup01(){
		
		try {
			//创建freeMarker配置实例
			Configuration configuration = new Configuration();
			configuration.setDirectoryForTemplateLoading(new File("WebRoot/templates"));
			
			//创建数据模型
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("user", "徐书一");
			map.put("randoms", Integer.parseInt(new Random().nextInt(100)+""));
			
			List<Object> list = new ArrayList<Object>();
			list.add(new Address("中国","001"));
			list.add(new Address("美国","002"));
			list.add(new Address("英国","003"));
			list.add(new Address("法国","004"));
			list.add(new Address("德国","005"));
			list.add(new Address("日本","006"));
			map.put("lst", list);
			
			map.put("date1", new Date());
			
			//加载模板文件
			Template template = configuration.getTemplate("a.ftl");
			
			//显示生成数据,并将数据打印到控制台
			OutputStreamWriter writer = new OutputStreamWriter(System.out);
			template.process(map, writer);
			writer.flush();
			writer.close();
		} catch (IOException e) {
			System.out.println(e.getLocalizedMessage());
		} catch (TemplateException e) {
			System.out.println(e.getLocalizedMessage());
		}
	}
}

  a.ftl模板:

------------------------------------------
注释指令:<#-- 定义指令 -->
------------------------------------------
你好,${user},今天天气不错啊!
------------------------------------------
测试if语句:
<#if user=="徐书一">
	我们的老师
<#else>
	不是我们的老师
</#if>
********************
<#if randoms gte 60>
	及格:${randoms}
<#else>
	不及格:${randoms}
</#if>
*******************
<#if randoms gte 90>
	优秀	:${randoms}
<#elseif randoms gte 80>
	良好:${randoms}
<#else>
	一般:${randoms}
</#if>
------------------------------------------
测试list容器语句:
<#list lst as address >
	<b>${address.country}--${address.city}</b> <br/>
</#list>
-----------------------------------------
测试文件的包含指令:
<#include "included.txt"> </br>
-----------------------------------------
测试宏指令:
定义宏:
<#macro m1>

	<b>aaaaaaaaaaaaa</b></br>
	<b>bbbbbbbbbbbbb</b></br>
	
</#macro>
调用宏:
<@m1 /><@m1 /><@m1 /><@m1 />
-----------------------------------------
测试带参的宏指令:
<#macro m2 a b c>
	${a}--${b}--${c}
</#macro>
调用宏:
<@m2 a='徐书一' b='老高' c='老张' />
<@m2 '徐书一' '老高' '老张' />
-----------------------------------------
测试nested指令:
<#macro border> 
  <table border=4 cellspacing=0 cellpadding=4>
  	<tr>
  		<td> 
    		<#nested> 
  		</td>
  	</tr>
  </table> 
</#macro>

调用nested指令:
<@border>aaaaaaaaaaaaaabbbbbbbbbbbbbbb</@border>
-----------------------------------------
测试命名空间指令:--用来区分文件
<#import "b.ftl" as b />
<@b.copyright date="2014-2015"></@b.copyright>
b.ftl文件中的mail属性:${b.mail}

文件中定义mail属性:
<#assign mail='my@163.com' />

${mail}
修改b.flt文件中属性的值:
<#assign mail='my@1633.com' in b />
${b.mail}
-----------------------------------------
测试数据类型:
<#assign name = "xushuyi" />
<#assign num = 123 />
${name}--${num}
-----------------------------------------
测试时间类型:
${date1?string("yyyy-MM-dd HH:mm:ss")}
-----------------------------------------

  included.txt文件:

我是被包含文件!!!!!!!!!!!

  b.ftl模板:

<#macro copyright date>
	<p>copyright (c) ${date} 北京尚学堂.</p>
</#macro>

<#assign mail='bjsxt@163.com'>

  

转载于:https://www.cnblogs.com/xushuyi/articles/4525532.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值