FreeMarker---数据类型

1、a.ftl

 1 你好,${user},今天你的精神不错!
 2 
 3 -----------------------------
 4 测试if语句:
 5 <#if user=="老高">
 6       高!
 7 </#if>
 8 
 9 ******************
10 分数为:${random}
11 <#if random gte 60>
12        及格
13 <#else>
14       不及格
15 </#if>
16 
17 ******************
18 <#if random gte 90>
19        优秀
20 <#elseif random gte 80>
21       良好
22 <#else>
23       一般
24 </#if>
25 
26 --------------------------------
27 测试List语句:
28 <#list lst as dizhi>
29     <b>${dizhi}</b><br/>
30 </#list>
31 ---------------------------------
32 测试include语句
33 <#include "included.txt" />
34 
35 -----------------------------------
36 测试自定义指令(macro指令)
37 定义宏:
38 <#macro m1> <#--定义指令m1-->
39   <b>aaabbbccc</b>
40   <b>dddeeefff</b>
41 </#macro>
42 
43 定义带参的宏指令:
44 <#macro m2 a b c>
45   ${a}--${b}--${c}
46 </#macro>
47 
48 
49 
50 <#macro border>
51   <table border=4 cellspacing=0 cellpadding=4> 
52     <tr><td>
53        <#nested>
54     </td></tr>
55   </table>
56 </#macro> 
57 
58 调用宏:
59 <@m1 /> <@m1 />
60 <@m2 "hi" "nihao" "hello"/>
61 <#-- <@border "sss"/> -->
62 <@border>
63     agsdjgdjgsjkhksdhkdhksh
64 </@border>
65 
66 -----------------------------------
67  测试命名空间
68 <#import "b.ftl" as bb />
69 <@bb.copyright date="2010-2011"/>
70 ${bb.mail}
71 <#assign mail="my@163.com"/>
72 ${mail}
73 <#assign mail="my@163.com" in bb/>
74 ${bb.mail}
75 --------------------------------
76 测试数据类型:
77 定义:
78 <#assign b=123 />
79 ${date1?string("yyyy-MM-dd HH:mm:ss")}
80 ---------------------------------------
81 ${html2?html}
82 
83 -------------------------
84 测试空值处理:
85 <#-- ${sss}  没有定义这个变量,会报异常 -->
86 ${sss!} <#-- 没有定义这个变量,默认值是空字符串  -->
87 ${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc -->


2、b.ftl

<#macro copyright date>
  <p>Copyright (C) ${date} 北京尚学堂.</p>
</#macro>
<#assign mail = "bjsxt@163.com">

3、included.txt

这是被包含的文件

4、测试类Test1.java

 1 package com.test.freemarker;
 2 
 3 import java.io.File;
 4 import java.io.OutputStreamWriter;
 5 import java.io.Writer;
 6 import java.util.ArrayList;
 7 import java.util.Date;
 8 import java.util.HashMap;
 9 import java.util.List;
10 import java.util.Map;
11 import java.util.Random;
12 
13 import freemarker.template.Configuration;
14 import freemarker.template.Template;
15 
16 public class Test1 {
17 
18     public static void main(String[] args) throws Exception {
19         //创建Freemarker配置实例
20         Configuration cfg = new Configuration();
21         
22         cfg.setDirectoryForTemplateLoading(new File("templates"));
23         
24         //创建数据模型
25         Map root = new HashMap();
26         root.put("user", "老高");
27         root.put("random", new Random().nextInt(100));
28         
29         
30         List list = new ArrayList();//测试list
31         list.add("北京");
32         list.add("上海");
33         list.add("纽约");
34         root.put("lst", list);
35         
36         root.put("date1", new Date());
37         
38         root.put("html2", "<b>粗体</b>");
39         
40         
41         //加载模板文件
42         Template t1 = cfg.getTemplate("a.ftl");
43         
44         //显示生成的数据
45         Writer out = new OutputStreamWriter(System.out);
46         t1.process(root, out);
47         out.flush();
48     }
49 
50 }
原文地址:https://www.cnblogs.com/UniqueColor/p/5741057.html