当前位置: 首页 > news >正文

Spring Boot整合Thymeleaf和FreeMarker模板

虽然目前市场上多数的开发模式采用前后端分离的技术,视图层的技术在小一些的项目中还是非常有用的,所以一直也占有一席之地,如spring官方的spring.io等网站就是使用视图层技术实现的。

目前Spring Boot支持的较好的两个视图层模板引擎是Thymeleaf和FreeMarker,其中Thymeleaf是默认的模板引擎。

一、整合Thymeleaf

Thymeleaf支持HTML原型,可以直接在浏览器中查看页面样式,这对于调试是非常方便的,SpringBoot工程整合Thymeleaf只需要几个简单的步骤:

  1. 添加依赖
    	<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
  2. 配置Thymeleaf
    Springboot中Thymeleaf默认的配置类为:ThymeleafAutoConfiguration,默认的模板以html格式存在于classpath:/templates目录下,如果要改变这些配置,可以在application.properties中修改,所有的配置以spring.thymeleaf为前缀:
    #是否启用thymeleaf,默认true
    spring.thymeleaf.enabled=true
    #是否开启缓存,默认true
    spring.thymeleaf.cache=true
    #检查模板是否存在,默认为true
    spring.thymeleaf.check-template=true
    #检查模板位置是否存在,默认为true
    spring.thymeleaf.check-template-location=true
    #开启EL编译器,默认为true
    spring.thymeleaf.enable-spring-el-compiler=true
    #配置模版的位置
    spring.thymeleaf.prefix=classpath:/templates/
    #配置模板的编码
    spring.thymeleaf.encoding=UTF-8
    #配置模版支持的类型,默认为HTML
    spring.thymeleaf.mode=HTML
    #配置模板文件的后缀,默认为.html
    spring.thymeleaf.suffix=.html
    #配置content-type
    spring.thymeleaf.servlet.content-type=text/html

    3.配置ModelAndView

   编写controller,返回一个ModelAndView,返回到页面上渲染的数据存储在ModelAndView中。

@Controller
@RequestMapping("/thymeleaf")
public class ThymeleafController {private class Student{private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}@GetMapping("/students")public ModelAndView students(){List<Student> students = new ArrayList<>();Student student1 = new Student();student1.setName("Li Lei");student1.setAge(18);Student student2 = new Student();student2.setName("Han Meimei");student2.setAge(17);students.add(student1);students.add(student2);ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("students",students);modelAndView.setViewName("test");return modelAndView;}
}

4.编写template

在resources目录下创建templates文件,创建test.html,对应上面代码的viewName,填入以下内容:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Thymeleaf Testing</title>
</head>
<style>tr,td,th {border: 2px solid #ff4c6b;width: 200px;}
</style>
<body style="text-align:center;">
<table style="margin:200px auto;border: 2px solid #ff4c6b;"><tr><td>姓名</td><td>年龄</td></tr><tr th:each="student:${students}"><td th:text="${student.name}"></td><td th:text="${student.age}"></td></tr>
</table>
</body>
</html>

访问localhost:8080/thymeleaf/students得到以下页面:

二、整合FreeMarker

整合FreeMarker于Thymeleaf非常相似,springboot提供了一致的整合方案,所以你只需要将以上的步骤做一下修改:

1、添加依赖

将Thymeleaf依赖替换成FreeMarker依赖

		<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>

2、修改模板

将原来建立的html模板改成.ftl模板,其余不变。

 

http://www.lryc.cn/news/17787.html

相关文章:

  • SQL的四种连接-左外连接、右外连接、内连接、全连接
  • “点工”的觉悟,5年时间从7K到24K的转变,我的测试道路历程~
  • 【Web安全-MSF记录篇章一】
  • 配置Flutter开发环境
  • 23年六级缓考
  • 低代码选型,论协同开发的重要性
  • 【第二十二部分】游标
  • 【面试题】2023高频前端面试题20题
  • Spring解决循环依赖为什么需要三级缓存?
  • Android源码分析 - 回顾Activity启动流程
  • PDMS二次开发(一)——PML类型程序类型与概念
  • 一文揭晓:手机号码归属地api的作用是什么?
  • 电容的结构分类介质封装及应用场景总结
  • 数据结构初阶——时间复杂度与空间复杂度
  • 深度学习之“制作自定义数据”--torch.utils.data.DataLoader重写构造方法。
  • #G. 求约数个数之六
  • 如何为Java文件代码签名及添加时间戳?
  • Xamarin.Forsm for Android 显示 PDF
  • RK3399平台开发系列讲解(LED子系统篇)LED子系统详解
  • LeetCode 432. 全 O(1) 的数据结构
  • 再析jvm
  • 社招前端二面面试题总结
  • 人人能读懂redux原理剖析
  • uniCloud云开发----7、uniapp通过uni-swiper-dot实现轮播图
  • IM即时通讯构建企业协同生态链
  • Python实现构建gan模型, 输入一个矩阵和两个参数值,输出一个矩阵
  • 开学准备哪些电容笔?ipad触控笔推荐平价
  • 放下和拿起 解放自己
  • 100%BIM学员的疑惑:不会CAD可以学Revit吗?
  • 经常会采坑的javascript原型应试题