package No03_使用map绑定多个参数;

import java.io.File;
import java.io.FileOutputStream;
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 freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler; public class Test { public static void main(String[] args) throws Exception { // 设置模板的home目录,默认从此目录获取模板(此设置只需在应用中设置一次)
Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);
cfg.setDirectoryForTemplateLoading(new File("D:/freemarker_template_home/"));
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); // 获取模板
Template temp = cfg.getTemplate("No03_绑定列表数据.ftl"); // 创建、设置数据模型
Map<String, Object> dataMap = new HashMap<String, Object>(); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
dataMap.put("userList", list); Map<String, Object> userMap = new HashMap<String, Object>();
userMap.put("username", "Nick Huang");
userMap.put("age", 20);
userMap.put("nickname", "Nick");
list.add(userMap); userMap = new HashMap<String, Object>();
userMap.put("username", "Viki Yang");
userMap.put("age", 19);
userMap.put("nickname", "Viki");
list.add(userMap); userMap = new HashMap<String, Object>();
userMap.put("username", "Teng Yang");
userMap.put("age", 18);
userMap.put("nickname", "Teng");
list.add(userMap); // 将模板和数据模型合并
String filename = temp.getName();
filename = filename.substring(0, filename.lastIndexOf(".") + 1) + "html";
FileOutputStream fos = new FileOutputStream(new File("D:/freemarker_output_home/" + filename));
Writer out = new OutputStreamWriter(fos); temp.process(dataMap, out);
out.flush();
} }
No03_绑定列表数据.ftl
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>User list</title>
</head>
<body>
<table>
<thead>
<tr>
<th>user name</th>
<th>age</th>
<th>nick name</th>
</tr>
</thead>
<tbody>
<#list userList as being>
<tr>
<th>${being.username}</th>
<th>${being.age}</th>
<th>${being.nickname}</th>
</tr>
</#list>
</tbody>
</table>
</body>
</html>

Freemarker-2.3.22 Demo - No03_使用map绑定多个参数的更多相关文章

  1. Freemarker-2.3.22 Demo - No04_条件判断

    package No04_条件判断; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream ...

  2. Freemarker-2.3.22 Demo - No02_绑定单个参数

    package No02_绑定单个参数; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStre ...

  3. Freemarker-2.3.22 Demo - No01_获取模板并直接输出

    package No01_获取模板并直接输出; import java.io.File; import java.io.FileOutputStream; import java.io.OutputS ...

  4. Freemarker 中的哈希表(Map)和序列(List)

    freemarlker中的容器类型有: 哈希表:是实现了TemplateHashModel或者TemplateHashModelEx接口的java对象,经常使用的实现类是SimpleHash,该类实现 ...

  5. Map与Url查询参数相互转换

    package com.thunisoft.maybee.engine.utils; import org.apache.commons.lang3.StringUtils; import java. ...

  6. TD Rigging Demo Reel 性感美女绑定展示

    161455520158189 这是一个充满回忆的Demo,非常怀念之前的工作生活,也特别感谢我长春的老哥张总对我的帮助与指导,不光是工作中,在生活上也让我有很大的收获.这个一直都觉得做的不够好,也从 ...

  7. [Day20]Map接口、可变参数、Collections

    1.Map接口-元素成对存在,每个元素由健与值两部分组成,通过键可以找所对应的值 1.1 Map子类 (1)HashMap<K,V>:存储数据所用的哈希表结构,元素的存取数据顺序不能保证一 ...

  8. Android的Databinding-数据、Map绑定

    本节主要说Collection的字符串数组.List.SparseArray.Map的绑定.先看看xml的布局. <layout xmlns:android="http://schem ...

  9. 将map中的查询参数拼装到URL路径中

    被调接口的URL路径: //被调接口url String apiUrl = "http://api.open.xxxxxx.com/implatform/interview/send?acc ...

随机推荐

  1. java之八大排序

    的关系:  1.直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 也是排好顺序的.如此反 ...

  2. java面试第十二天

    多线程: 多线程的同步: 多线程并发访问同一个对象(临界资源),如果不对线程进行同步控制,破坏了原子操作(不可再分的操作),则会造成临界资源(两个线程同时访问的资源)的数据不一致. 每一个对象都有一个 ...

  3. openerp 中文乱码及界面翻译不全

    openerp中文报表乱码问题,即是字体问题,环境是ubuntu 12.04 openerp 6.1, deb all in one安装方式 一.cd usr/share/fonts/truetype ...

  4. posix_memalign详细解释(转)——自定义对齐大小的内存分配函数

    转载:http://hi.baidu.com/freelonely/blog/item/340341077c4d287302088189.html 预对齐内存的分配 在大多数情况下,编译器和C库透明地 ...

  5. SwaggerUI+SpringMVC——构建RestFul API的可视化界面

    今天给大家介绍一款工具,这个工具眼下可预见的优点是:自己主动维护最新的接口文档. 我们都知道,接口文档是非常重要的,可是随着代码的不断更新,文档却非常难持续跟着更新,今天要介绍的工具,完美的攻克了这个 ...

  6. 关于 while(1)和for(;;)效率问题的一点想法

    这几天看到好友的文章关于while(1)和for(;;)效率的讨论,手痒说了两句.回头一寻思,自己也仅仅是判断.没有做不论什么实验,我们就看看这两种写法究竟有什么差别: 实验环境:IAR EWARM ...

  7. 用JSON-server模拟REST API

    来源于: 用JSON-server模拟REST API(一) 安装运行 用JSON-server模拟REST API(二) 动态数据 用JSON-server模拟REST API(三) 进阶使用 在开 ...

  8. zookeeper与kafka安装部署及java环境搭建(发布订阅模式)

    1. ZooKeeper安装部署 本文在一台机器上模拟3个zk server的集群安装. 1.1. 创建目录.解压 cd /usr/ #创建项目目录 mkdir zookeeper cd zookee ...

  9. HDUOJ---(1995)汉诺塔V

    汉诺塔V Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  10. HDUOJ--畅通工程

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...