模板FreeMarker篇
一、FreeMarker 介绍
Freemarker是java的免费模板引擎,主要用于MVC中的view层,生成html展示数据给客户端,可以完全替代jsp。 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,模板中没有业务逻辑,外部java程序通过数据库操作等生成数据传入template中, 然后输出页面。它能够生成各种文本:HTML、XML、RTF、Java源代码等等,而且不需要Servlet环境,并且可以从任何源载入模板,如本地文件、数据库等等。
二、Spring Boot 集成Freemarker基本操作
2.1、先在pom.xml文件中引入依赖
<dependencies>
<!-- springBoot web的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springBoot 引入freemarker的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
</dependencies>
2.2、FreeMarker模板资源默认路径:classpath:/templates/ ;想要详细了解配置的可以看源码FreeMarkerProperties 配置类
在 resources目录下新建一个templates的目录用于放Freemarker模板文件;Freemarker模板文件默认以.ftl后缀结尾
**templates :该目录是安全的;意味着该目录下的内容是不允许外界直接访问的。**
三、FreeMarker 学习入门引导示例
3.1、注释 :即<#–…-->格式不会输出
3.2、 插值(Interpolation):即${…}或者#{…}格式的部分,将使用数据模型中的部分替代输出
3.3、 FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>FreeMarker</title>
</head>
<body>
<#-- 注释部分 -->
<br>
<#-- 使用插值 -->
<h1>Welcome ${user} !</h1>
<u1>
<#-- 使用FTL指令 -->
<#list animals as being>
<li>${being} </li>
</#list>
</u1>
</body>
</html>
@Controller
public class FreemarkerController {
private List<String> animals =new ArrayList<String>();
{
animals.add("Dog");
animals.add("Cat");
animals.add("Pig");
animals.add("Tigger");
}
/**
* ModelMap 和 Model 封装数据都可以
*/
/* @RequestMapping(value="/ftl/freemarker")
public String showFreemarker(ModelMap modelMap ){
modelMap.addAttribute("user", "losser");
modelMap.put("animals", animals);
return "animal";
}*/
@RequestMapping(value="/ftl/freemarker")
public String showFreemarker(Model modelMap ){
modelMap.addAttribute("user", "losser");
modelMap.addAttribute("animals", animals);
return "animal";
}
}