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 的使用方法的更多相关文章

  1. Freemarker的使用方法

    1. Freemarker概念 1.1 什么是freemarker FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运 ...

  2. 161213、Maven资源替换和Freemarker模板

    先介绍一下本文的两位主角: Apache Maven - 正当红的项目管理工具 FreeMarker - 老牌的模板引擎 两者貌似互不相干,何来冲突呢? 原来Maven有一个内置的资源替换机制, 可以 ...

  3. 巧用Freemarker的自定义方法

    要想使用Freemarker支持的自定义方法,需要实现freemarker.template.TemplateMethodModel接口,然后将方法对象放入到Freemarker的数据模型中,这样在f ...

  4. [转]SpringMVC日期类型转换问题三大处理方法归纳

    http://blog.csdn.net/chenleixing/article/details/45190371 前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日 ...

  5. SpringMVC日期类型转换问题三大处理方法归纳

    方法一:实体类中加日期格式化注解 @DateTimeFormat(pattern = "yyyy-MM-dd") private Date receiveAppTime; 方法二: ...

  6. freemarker的使用

    一:freemarker是什么? freemarker是一个模板引擎,基于定义的模板和数据生成对应的文本(HTML,xml,java等),是一个生成文本的工具. 二:freemarker的使用方法 ( ...

  7. freemarker是什么东西?

    前言 由于考虑到网站访问量,以及tocmat可能承受的最大访问压力,我们需要引进一些比较好的技术,来解决这个问题.所以在项目快要结束之际又收到消息,我们要考虑到这些问题然后对现在的项目进行改进,于是就 ...

  8. 【转】使用Freemarker实现网页静态化

    使用Freemarker实现网页静态化 2017年08月20日 20:45:51 阅读数:1981 1.1. 什么是freemarker FreeMarker是一个用Java语言编写的模板引擎,它基于 ...

  9. JAVAEE——宜立方商城10:使用freemarker实现网页静态化、ActiveMq同步生成静态网页、Sso单点登录系统分析

    1. 学习计划 1.使用freemarker实现网页静态化 2.ActiveMq同步生成静态网页 2. 网页静态化 可以使用Freemarker实现网页静态化. 2.1. 什么是freemarker ...

随机推荐

  1. python学习笔记(1)--遍历txt文件,正则匹配替换文字

    遍历一个文件夹,把里面所有txt文件里的[]里的朗读时间删除,也就是替换为空. import os import re import shutil #os文件操作,re正则,shutil复制粘贴 pa ...

  2. 跟着百度学PHP[11]-PHP当中的异常处理

    首先要说一下常见的三种错误: 1.语法错误 2.运行错误 3.逻辑错误 00x1 错误报告及错误级别 PHP的错误分为三个等级 1.注意(notice)   没有变量a 2.警告(warning) 没 ...

  3. jvm 调整tomcat的堆内存和常驻内存catalina.sh

    4.2 性能优化 tomcat性能取决于你的内存大小 上策:优化代码 中策:jvm优化机制  垃圾回收机制 把不需要的内存回收   优化jvm--优化垃圾回收策略 优化catalina.sh配置文件. ...

  4. js学习笔记26----事件冒泡,事件捕获

    事件冒泡 : 当一个元素接收到事件的时候,会把它接收到的所有传播给它的父级.一直到顶层window.这种现象称之为事件冒泡机制.出去的事件触发. 阻止冒泡 : 当前要阻止冒泡的事件函数中,调用 eve ...

  5. sql 追踪 神器

    http://www.thinkphp.cn/download/690.html 一个中国人开发的php工具箱此工具能几秒钟追踪出sql 数据库操作, 能分析出 Thinkphp3.2 的任意sql ...

  6. 数据库 Oracle数据库对象一

    常见的数据库对象 表:基本的数据存储集合,由行和列组成 视图:从表中抽出的逻辑上相关的数据集合 序列:提供有规律的数值 索引:提高查询的效率 同义词:给对象起别名 create table语句 --c ...

  7. 后台登陆功能的实现 SESSION

    控制器 <?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action { public function index(){ $this-& ...

  8. Stochastic Multiple Choice Learning for Training Diverse Deep Ensembles

    作者提出的方法是Algotithm 2.简单来说就是,训练的时候,在几个模型中,选取预测最准确的(也就是loss最低的)模型进行权重更新.

  9. hdu 2019:数列有序!(数据结构,直接插入排序+折半插入排序)

    数列有序! Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submiss ...

  10. mysql备份数据库常见问题

    如果遇到mysqldump: unknown option '--no-beep'  ,可以加上 --no-dafaults 命令结尾无需分号 mysqldump --no-defaults -uro ...