FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。
pom文件添加依赖
<!-- freemarker -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
springboot配置文件添加freemaker配置:
注意resources文件夹下新建templates文件夹作文模板的存放目录类似jsp,模板文件后缀:ftl
#设定ftl文件路径
spring.freemarker.template-loader-path=classpath:templates
#关闭缓存即时刷新
spring.freemarker.cache=false
#设定template的编码
spring.freemarker.charset=UTF-8
#是否检查templete路径是否存在
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html; charset=utf-8
#设定所有的request的属性merge到末班的时候是否都要添加到model中
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
#制定requestContext属性的名
spring.freemarker.request-context-attribute=request
#设定模板后缀
spring.freemarker.suffix=.ftl
使用模板获取数据并展示:
$用于获取后台传来参数对象,controller中可以放在model中也可以放在map中
<#if> <#else> 类似java中的if else
<#list > 用户展示list数据集合 userList as res 其中uesrList 是后台传输来的数据集合
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
</head>
<body>
${user.name}
<#if name=="smf">
上海
<#elseif name=="25">
smf
<#else>
广州
</#if>
<#list userList as res>
${res.name}
</#list>
<h1>hello</h1>
</body>
</html>
后台 controller代码,本项目基于上一篇博客的项目继续开发,所以关于mybatis的相关内容可以参考:https://blog.csdn.net/Phoenix_smf/article/details/107492625
package com.example.demo.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.example.demo.model.User;
import com.example.demo.service.UserService;
@RequestMapping("/user")
@Controller
public class UserController {
@Autowired
private UserService userService;
/**根据id查找用户信息*/
@RequestMapping("/getUser")
@ResponseBody
public User getUserById(int id) {
return userService.selectByPrimaryKey(id);
}
/**freemaker数据展示*/
@RequestMapping("/freemakerPage")
public String freemakerPage(Model model) {
User user = userService.selectByPrimaryKey(1);
model.addAttribute("user", user);
model.addAttribute("name", "smf");
model.addAttribute("age", 25);
User user2 = new User();
user2.setName("mmy");
List<User> userList = new ArrayList<User>();
userList.add(user);
userList.add(user2);
model.addAttribute("userList", userList);
return "test";
}
}
浏览器输入访问地址: