Freemarker-2.3.22 Demo - No03_使用map绑定多个参数
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绑定多个参数的更多相关文章
- Freemarker-2.3.22 Demo - No04_条件判断
package No04_条件判断; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream ...
- Freemarker-2.3.22 Demo - No02_绑定单个参数
package No02_绑定单个参数; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStre ...
- Freemarker-2.3.22 Demo - No01_获取模板并直接输出
package No01_获取模板并直接输出; import java.io.File; import java.io.FileOutputStream; import java.io.OutputS ...
- Freemarker 中的哈希表(Map)和序列(List)
freemarlker中的容器类型有: 哈希表:是实现了TemplateHashModel或者TemplateHashModelEx接口的java对象,经常使用的实现类是SimpleHash,该类实现 ...
- Map与Url查询参数相互转换
package com.thunisoft.maybee.engine.utils; import org.apache.commons.lang3.StringUtils; import java. ...
- TD Rigging Demo Reel 性感美女绑定展示
161455520158189 这是一个充满回忆的Demo,非常怀念之前的工作生活,也特别感谢我长春的老哥张总对我的帮助与指导,不光是工作中,在生活上也让我有很大的收获.这个一直都觉得做的不够好,也从 ...
- [Day20]Map接口、可变参数、Collections
1.Map接口-元素成对存在,每个元素由健与值两部分组成,通过键可以找所对应的值 1.1 Map子类 (1)HashMap<K,V>:存储数据所用的哈希表结构,元素的存取数据顺序不能保证一 ...
- Android的Databinding-数据、Map绑定
本节主要说Collection的字符串数组.List.SparseArray.Map的绑定.先看看xml的布局. <layout xmlns:android="http://schem ...
- 将map中的查询参数拼装到URL路径中
被调接口的URL路径: //被调接口url String apiUrl = "http://api.open.xxxxxx.com/implatform/interview/send?acc ...
随机推荐
- 改进版高速排序(平均复杂度O(NlogN))
#include<iostream> using namespace std; #define MAXSIZE 21 typedef int SqList[MAXSIZE]; #defin ...
- HDU 4902 Nice boat 成段线段树
操作1 的时候标记deng[rt]表示以下一段数都是与当前节点的值同样 下次操作2时直接对有deng标记的节点gcd更新 (可能还能够更简单) #include <stdio.h> #in ...
- 'htmlentities(): charset `utf8' not supported, assuming utf-8'
TP5.1框架报错! Fatal error: Uncaught exception 'think\exception\ErrorException' with message 'htmlentit ...
- jQuery中first-child与first选择器区别
1.first-child first-child为每个父级元素匹配第一个子元素,可以匹配出多个元素: 示例代码: <!DOCTYPE html> <html lang=" ...
- python之函数用法id(),了解即可
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法id(),了解即可 #http://www.cnblogs.com/hongfei/p ...
- Redis学习(3)-redis启动
前端启动 tomcat,redis,mysql的端口号: mysql 3306 tomcat 8088 redis 6379 一,启动redis服务: 例如当前位置在redis安装目录下面: 启动re ...
- Web在线文件管理器(web os) KODExplorer
KODExplorer是款开源的Web在线文件管理.代码编辑器.它提供了类windows经典用户界面,一整套在线文件管理.文件预览.编辑.上传下载.在线解压缩.音乐播放功能.让你直接在浏览器端实现we ...
- 微信小程序独家秘笈之左滑删除
代码地址如下:http://www.demodashi.com/demo/14056.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- java多线程(二)之实现Runnable接口
一.java多线程方式2: 实现Runnable接口 好处:a. 可以避免由于java单继承带来的局限性. b. 适合多个相同的程序的代码去处理同一个资源的情况, 把线程与程序的代码, 数据有效分离, ...
- 【LeetCode】144. Binary Tree Preorder Traversal (3 solutions)
Binary Tree Preorder Traversal Given a binary tree, return the preorder traversal of its nodes' valu ...