FreeMarker 的使用方法
1.FreeMarker 概述
- FreeMarker 是一个用Java语言编写的模板引擎,使用模板来生成文本输出;主要用于做静态页面或页面展示;

2.FreeMarker 使用
// 导入jar包: freemarker.jar
// 测试类
public class TestFreeMarker{
@Test
public void testFreeMarker() throws Exception{
// 1.创建一个模板文件(/Users/用户名/Documents/ftl)
// 2.创建一个Configuration对象
Configuration configuration = new Configuration(Configuration.getVersion());
// 3.设置模板所在的路径
configuration.setDirectoryForTemplateLoading(new File("/Users/用户名/Documents/ftl"));
// 4.设置模板的字符集,一般为utf-8
configuration.setDefaultEncoding("utf-8");
// 5.使用Configuration对象,加载一个模板文件,需要指定模板文件的文件名
Template template = configuration.getTemplate("hello.ftl");
// 6.创建一个数据集,可以是pojo,也可以是map,推荐使用map
Map data = new HashMap<>();
data.put("hello","hello FreeMarker");
// 7.创建一个Writer对象,指定输出文件的路径及文件名
Writer out = new FileWriter("/Users/用户名/Documents/taotao/html/hello.txt");
// 8.使用模板对象的process方法输出文件
template.process(data,out);
// 9.关闭资源
out.close();
}
}
// 模板文件: /Users/用户名/Documents/ftl/hello.ftl
${hello}
2.1 模板语法
2.1.1 访问map中的key
${key}
2.1.2 访问pojo中的属性
${key.property}- 例如:Student对象中的学号,姓名,年龄,住址

2.1.3 获取集合中的数据
// 循环使用格式:
<#list 要循环的数据 as 循环后的数据>
</#list>

2.1.4 获取循环下标
<#list studentList as student>
${student_index}
</#list>
2.1.5 判断
<#if student_index % 2 ==0>
<tr bgcolor="red">
<#else>
<tr bgcolor="blue">
</#if>
</tr>
2.1.6 日期类型格式化
// 如果传来的是一个Date数据类型, ${date} 直接取值会报错
${date?date} 2017-12-1
${date?time} 9:00:00
${date?datetime} 2017-12-1 9:00:00
${date?string("yyyy/MM/dd HH:mm:ss")} 自定义日期格式
2.1.7 Null 值的处理
${aaa!"默认值"} 或 ${aaa!} 代表空字符串
<#if val??>
val 是有值的...
<#else>
val 值为null
</#if>
2.1.7 Include 标签
<#include "模板名称">
FreeMarker 的使用方法的更多相关文章
- Freemarker的使用方法
1. Freemarker概念 1.1 什么是freemarker FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运 ...
- 161213、Maven资源替换和Freemarker模板
先介绍一下本文的两位主角: Apache Maven - 正当红的项目管理工具 FreeMarker - 老牌的模板引擎 两者貌似互不相干,何来冲突呢? 原来Maven有一个内置的资源替换机制, 可以 ...
- 巧用Freemarker的自定义方法
要想使用Freemarker支持的自定义方法,需要实现freemarker.template.TemplateMethodModel接口,然后将方法对象放入到Freemarker的数据模型中,这样在f ...
- [转]SpringMVC日期类型转换问题三大处理方法归纳
http://blog.csdn.net/chenleixing/article/details/45190371 前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日 ...
- SpringMVC日期类型转换问题三大处理方法归纳
方法一:实体类中加日期格式化注解 @DateTimeFormat(pattern = "yyyy-MM-dd") private Date receiveAppTime; 方法二: ...
- freemarker的使用
一:freemarker是什么? freemarker是一个模板引擎,基于定义的模板和数据生成对应的文本(HTML,xml,java等),是一个生成文本的工具. 二:freemarker的使用方法 ( ...
- freemarker是什么东西?
前言 由于考虑到网站访问量,以及tocmat可能承受的最大访问压力,我们需要引进一些比较好的技术,来解决这个问题.所以在项目快要结束之际又收到消息,我们要考虑到这些问题然后对现在的项目进行改进,于是就 ...
- 【转】使用Freemarker实现网页静态化
使用Freemarker实现网页静态化 2017年08月20日 20:45:51 阅读数:1981 1.1. 什么是freemarker FreeMarker是一个用Java语言编写的模板引擎,它基于 ...
- JAVAEE——宜立方商城10:使用freemarker实现网页静态化、ActiveMq同步生成静态网页、Sso单点登录系统分析
1. 学习计划 1.使用freemarker实现网页静态化 2.ActiveMq同步生成静态网页 2. 网页静态化 可以使用Freemarker实现网页静态化. 2.1. 什么是freemarker ...
随机推荐
- [转]JavaScript放在<head>和<body>的区别
原文:http://liminhappygirl.iteye.com/blog/1841360 javaScript放在<head>和<body>的区别: 在HTML body ...
- Log4j容器深入探究
1.思考 容器是什么? 水壶是容器,水壶中存放着水,等我们需要水了,直接用 Spring中的ApplicationContext是容器,里面存放着各种Bean,等我们需要了直接用,并且可以创建管理Be ...
- Bootstrap学习笔记(8)--响应式导航栏
说明: 1. 响应式导航栏,就是右上角的三道杠,点一下下方出现隐藏的导航栏.如果屏幕够大就显示所有的导航选项,如果屏幕小比如手机,就显示部分,剩下的放到三道杠里隐藏. 2. 外面套一个大的div,其实 ...
- Maven实战(插件管理)
1.前言 近期在做项目中,用到了Maven来管理项目,当理解了Maven的基础知识后,忽然看到好多的插件信息,所以在此总结一下.其有使用方法基本上都一样. 2.源码打包插件 我们能够在Apache的站 ...
- Android——保存和恢复用户状态
onSaveInstanceState 保存 在暂停之后和保存之前调用 onRestoreInstanceState 恢复 再启动之后和显示之前调用 package com.example.chens ...
- oracle起定时任务,每隔1秒执行一次
创建一个测试表和一个存储过程: create table a(a date); create or replace procedure test as begin insert into a valu ...
- linux -- Ubuntu修改静态IP地址重启后无法上网的解决
ubuntu设置静态IP地址后,上不了网 文章中也提到,如果是在/etc/resolv.conf添加DNS,由于Ubuntu 有一个 resolvconf 服务,如果重启它,那么 /etc/resol ...
- 用 HTML5+ payment方法支付宝支付遇到的坑
用 HTML5+ payment方法碰到的第一个坑就是如果是支付宝的话签约那种支付方式. 因为 Dcloud的文档没有更新的原因你可以看到他们说的都是‘移动支付’,但是你去支付宝平台的时候看到的根本就 ...
- cocos2d怎么设置屏幕朝向?横屏 or 竖屏设置
在cocos引擎里面找了好久.没找到相关接口,网上也搜索了好久,最后发现.原来须要依据各个平台分别进行设置. android 改动项目根文件夹 proj.android\AndroidManifest ...
- linux 远端执行shell脚本 批量结束各个远端节点进程
#以下是一个本地的shell脚本,用于同时重启远端多台服务器tomcat服务 #!/bin/sh# ancyshi 重新启动节点tomcat服务function restartNodeTomcatSe ...