Spring Boot 推荐使用Thymeleaf、FreeMarker、Velocity、Groovy、Mustache等模板引擎。不建议使用JSP。

一、Spring Boot 中使用Thymeleaf模板引擎

简介:Thymeleaf 是类似于Velocity、FreeMarker 的模板引擎,可用于Web与非Web环境中的应用开发,并且可以完全替代JSP 。

1、pom.xml 添加依赖

<!-- thymeleaf 模板引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2、编写controller

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList;
import java.util.List; @Controller
public class HomeController { @RequestMapping("/home")
public String home(ModelMap modelMap) {
System.out.println("11");
modelMap.put("name", "loaderman");
List<String> list = new ArrayList<>();
list.add(" a");
list.add(" b");
list.add(" c");
list.add(" d");
modelMap.put("list", list);
return "/home";
}
}

3、编写home.html代码,其中th:text="${name}" 为thymeleaf的语法,具体可参考:Thymeleaf 官方文档

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>Home</title>
</head>
<body>
<span th:text="${name}"></span>
<ul>
<li th:each="item : ${list}" th:text="${item}"></li>
</ul>
</body>
</html>

启动应用,访问:http://localhost:8080/home ,可以得到相应结果。

如需修改 thymeleaf 的默认配置,可以在application.properties中添加:

# ================================================
# Thymeleaf配置
# ================================================
# 是否启用thymeleaf模板解析
spring.thymeleaf.enabled=true
# 是否开启模板缓存(建议:开发环境下设置为false,生产环境设置为true)
spring.thymeleaf.cache=false
# Check that the templates location exists.
spring.thymeleaf.check-template-location=true
# 模板的媒体类型设置,默认为text/html
spring.thymeleaf.content-type=text/html
# 模板的编码设置,默认UTF-8
spring.thymeleaf.encoding=UTF-8
# 设置可以被解析的视图,以逗号,分隔
#spring.thymeleaf.view-names=
# 排除不需要被解析视图,以逗号,分隔
#spring.thymeleaf.excluded-view-names=
# 模板模式设置,默认为HTML5
#spring.thymeleaf.mode=HTML5
# 前缀设置,SpringBoot默认模板放置在classpath:/template/目录下
spring.thymeleaf.prefix=classpath:/templates/
# 后缀设置,默认为.html
spring.thymeleaf.suffix=.html
# 模板在模板链中被解析的顺序
#spring.thymeleaf.template-resolver-order=

二、Spring Boot 中使用FreeMarker模板引擎

1、pom.xml 添加依赖

      <!-- freemarker 模板引擎 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2、编写controller

同上

3、templates 下新建 home.ftl文件编写html代码,freemarker语法 可参考:FreeMarker 官方文档

home.ftl
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<span>${name}</span>
<ul>
<#list list as item >
<li>${item}</li>
</#list>
</ul>
</body>
</html>

如需修改 freemarker 的默认配置,可以在application.properties中添加:

# ================================================
# FreeMarker配置
# ================================================
# 是否开启模板缓存
spring.freemarker.cache=true
# 编码格式
spring.freemarker.charset=UTF-8
# 模板的媒体类型设置
spring.freemarker.content-type=text/html
# 前缀设置 默认为 ""
spring.freemarker.prefix=
# 后缀设置 默认为 .ftl
spring.freemarker.suffix=.ftl
#spring.freemarker.allow-request-override=false
#spring.freemarker.check-template-location=true
#spring.freemarker.expose-request-attributes=false
#spring.freemarker.expose-session-attributes=false
#spring.freemarker.expose-spring-macro-helpers=false
#spring.freemarker.request-context-attribute=
#spring.freemarker.template-loader-path=classpath:/templates/
#spring.freemarker.view-names=

点击查看Spring Boot 所有配置说明

最新文章

  1. php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子
  2. LR12.53—第6课:运行负载测试
  3. Java IO5:字符流
  4. Oracle修改默认字符编码
  5. Echarts-画叠加柱状图,双折线图
  6. C语言中的自定义函数
  7. html初学(二)
  8. Umbraco中的权限体系结构
  9. jquery 获取当前对象的id取巧验证的一种方法
  10. HDU 1589 Find The Most Comfortable Road 最小生成树+枚举
  11. 使用go, gin, gorm编写一个简单的curd的api接口
  12. Linux下使用yum安装软件命令
  13. Web Storage和cookie
  14. Java实现把图片转成字符画
  15. March 04th, 2018 Week 10th Sunday
  16. Android——AsyncTask
  17. Lintcode482-Binary Tree Level Sum-Easy
  18. “永恒之蓝”(Wannacry)蠕虫全球肆虐 安装补丁的方法
  19. linux上搭建nginx
  20. P1963 [NOI2009]变换序列

热门文章

  1. SUSE Ceph Cephfs - Storage6
  2. HTML主体标签
  3. java kafka
  4. 异步委托方式取消BackGroundWorker执行无循环的耗时方法
  5. ajax二进制流乱码图片解决方法
  6. Matplotlib模块的基本使用
  7. TeX Live安装指南
  8. Selenium常用API的使用java语言之9-模拟键盘操作
  9. native关键字
  10. CF798D Mike and distribution 贪心