作者:毕涛涛,致力于Java学习的践行者。原创文章,转载请注明出处。
整合freemarker
整合freemarker要求必须将视图文件放在 src/main/resources下的templates文件夹下,该文件夹是安全的不可直接访问的,必须由controller之类的接受请求类去跳转,因为如果直接访问就意味着需要及时响应,而springboot需要给展示文件去渲染,这需要时间,所以他是不允许被直接访问的。
1.项目目录结构

2.向pom文件中添加坐标
<!-- freemarker启动器的坐标 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
3.创建 Controller
package com.deewinkg.controller;
import com.deewinkg.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.List;
@Controller
public class UserController
{
/**
* 处理请求,产生数据。
* @param model
* @return
*/
@RequestMapping("/showUser")
public String showUser(Model model)
{
List<User> userList = new ArrayList<>();
userList.add(new User("1","刘备",50));
userList.add(new User("2","关羽",48));
userList.add(new User("3","张飞",45));
// 需要一个Model对象
model.addAttribute("list",userList);
// 跳转视图
return "userList";
}
}
package com.deewinkg.pojo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@AllArgsConstructor
@Setter
@Getter
public class User implements Serializable
{
private String id;
private String name;
private int age;
}
4.创建userList.ftl
** 此文件名字叫userList因为controller中showUser方法返回的名字叫userList,里面的EL表达式中的list是controller类中的model对象的addAttribute方法的key,参数名为list.**
<html>
<head>
<title>展示用户数据</title>
<meta charset="utf-9"></meta>
</head>
<body>
<table border="1" align="center" width="50%">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
<#list list as user >
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</#list>
</table>
</body>
</html>
5.运行结果

网友评论