闲言少叙,直接上代码
1、添加pom:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2、在application.yml主配置文件添加freemarker配置:
spring:
freemarker:
# 设置模板后缀名
suffix: .ftl
# 设置文档类型
content-type: text/html
# 设置页面编码格式
charset: UTF-8
# 设置页面缓存
cache: false
# 设置模板文件路径,默认是templates,此处设置为views
template-loader-path: classpath:/templates/views
3、编写freemarker页面,index.ftl:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
table {
width: 50%;
font-size: .938em;
border-collapse: collapse; /*边框合并*/
}
th {
text-align: left;
padding: .5em .5em;
font-weight: bold;
background: #66677c;
color: #fff;
}
td {
padding: .5em .5em;
border-bottom: solid 1px #ccc;
}
table, table tr th, table tr td {
border: 1px solid #0094ff;
}
/*设置边框*/
</style>
</head>
<body>
<h1>取值(${name!'暂无'}表示name值为''时默认值为暂无)</h1>
${name!'暂无'}
<h1>非空判断</h1>
<#if name?exists>
存在的
</#if>
<h1>条件表达式</h1>
<#if sex='女士'>
女士
<#elseif sex='男士'>
男士
<#else>
保密
</#if>
<h1>局部变量</h1>
<#assign ctx>
${springMacroRequestContext.contextPath}
</#assign>
${ctx}
<h1>#include</h1>
<#include 'foot.ftl'>
<h1>表格</h1>
<table>
<tr>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
</tr>
<#list users as user>
<tr>
<td>${user.name}</td>
<td>${user.sex}</td>
<td>${user.age}</td>
</tr>
</#list>
</table>
</body>
</html>
4、foot.ftl页面:
<a href="login.ftl">登录1</a>
<a href="${ctx}/toLogin">登录2</a>
5、编写控制器类:
package com.hl.chapter37.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.*;
@Controller
public class IndexController {
@RequestMapping(value = {"/", "/index"})
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("name", null);
modelAndView.addObject("sex", "女");
List<Map> users = new ArrayList<Map>();
for (int i = 0; i < 10; i++) {
Map map = new HashMap();
map.put("name", "A-" + i);
map.put("sex", i % 2 == 0 ? "男" : "女");
map.put("age", new Random().nextInt(100));
users.add(map);
}
modelAndView.addObject("users", users);
return modelAndView;
}
@RequestMapping(value = "/toLogin")
public String toLogin() {
return "login";
}
}
6、运行效果如下:
7、下载完整代码