第四章、Spring Boot视图技术
在一个Web应用中,通常会采用MVC设计模式实现对应的模型、视图、和控制器,其中,视图是用户看到并与之交互的界面。对最初的Web应用来说,视图是由HTML元素组成的静态页面,而后期的Web应倾向于使用动态模板技术,从而实现前后端分离和页面的动态数据展示。Spring Boot框架为简化项目的整体开发, 提供了一些视图技术支持,并主要推荐整合模板引擎技术实现前端页面的动态化内容。
4.1 Spring Boot支持的视图技术
前端模板引擎技术的出现,使得前端开发人员无须关注后端业务的具体实现,只关注自己页面的呈现效果即可。
名称 | 描述 |
---|---|
FreeMarker | 基于模板生成输出文本(HTML页面、电子邮件、配置文件等) 的模板 引擎,它不是面向最终用户的,而是一个Java类库,是一个程序员可以嵌入所开发产品的组件。 |
Groovy | Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby、Smalltalk的许多强大特性,能够与Java代码很好地结合,也能扩展现有代码。其运行在JVM上,可以使用Java语言编写的其他库。 |
Thymeleaf | 用于Web和独立环境的现代服务器端的Java模板引擎,主要目标是将Java模板带到开发工作流程中,将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易的协作。Tymeleaf能够处理HTML CSS XML JS甚至纯文本。 |
Mustache | Mustache 是轻逻辑的模板引擎,它是一个JS模板,用于对JS进行分离展示。其优势在于可以应用在JS PHP Python Perl等多编程语言上。 |
Spring Boot 不太支持常用的JSP模板,并且没有提供对应的整合配置,这是因为使用嵌入式Servlet容器的Spring Boot应用程序对于JSP模板存在一些限制。
- SpringBoot默认使用嵌入式Servlet容器以JAR包的方式进行项目打包部署,这种JAR包的方式不支持JSP模板。
- 使用Undertow嵌入式容器部署Spring Boot项目时,不支持JSP模板。
- Spring Boot默认提供了一个处理请求路径“ /error”的统一错误处理器,返回具体的异常信息。使用JSP模板时,无法使用Spring Boot自带的异常处理器,只能根据要求在Spring Boot项目的指定位置定制错误页面。
小提示
在使用Spring Boot框架进行Web应用开发时,可以选择使用传统Spring MVC框架进行整合开发,也可以使用Spring 5之后出现的Spring WebFlux框架(异步交互) 进行整合开发。针对于熟悉的MVC框架整合实现,Spring Boot实现了与FreeMarker、Groovy、Thymeleaf和Mustache前端模板引擎技术的整合支持和自动化配置;针对于WebFlux框架的整合实现,Spring Boot则实现了与FreeMarker、Thymeleaf和Mustache前端模板引擎技术的整合支持和自动化配置。
4.2 Thymeleaf 基本语法
Thymeleaf是一种现代的基于服务器端的Java模板引擎技术,也是一个优秀的面向Java的XML、XHTML、HTML5页面模板,它具有丰富标签语言、函数和表达式,在使用Spring Boot框架进行页面设计时,一般会选择Thymeleaf模板。
4.2.1 常用标签
在HTML页面上使用Thymeleaf标签,Thymeleaf标签能够动态地替换掉静态内容,动态显示页面内容。
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" media="all" th:href="@{/css/gtvf.css}" />
<title>Title</tiltle>
<body>
<p th:text="#{hello}" >欢迎进入Thymeleaf的学习</p>
<