《Spring Boot编程实战与面试指南》
04-01:Spring Boot支持的视图技术
前端模板引擎技术的出现,使前端开发人员无须关注后端业务的具体实现,只关注自己页面的呈现效果即可,从而解决了前端代码错综复杂的问题,优雅的实现了前后端分离开发。
1、模版引擎技术支持
在Spring Boot中,除了REST web
服务,还可以使用Spring MVC来提供动态HTML内容。 Spring MVC支持多种模板技术,包括Thymeleaf
、FreeMarker
和jsp
。 另外,Spring Boot提供对以下模板引擎的自动配置支持,具体介绍如下:
FreeMarker
:FreeMarker是一个基于模板生成输出文本(HTML页面、电子邮件、配置文件等)的模板引擎,它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入所开发产品的组件。Thymeleaf
:它是一种用于Web和独立环境的现代服务器端的Java模板引擎,其主要目标是将优雅的Java模板带到开发工作流程中,将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易地协作。Thymeleaf能够处理HTML
、XML
、JavaScript
、CSS
甚至纯文本。Groovy
:Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大特性,能够与Java代码很好地结合,也能扩展现有代码。Groovy运行在JVM上,它可以使用Java语言编写的其他库。Mustache
:Mustache是轻逻辑的模板引擎(Logic-less templates),它是一个JS模板,用于对JS进行分离展示。Mustache的优势在于可以应用在JavaScript
、PHP
、Python
、Perl
等多种编程语言中。
当我们使用这些带有默认配置的模板引擎时,模板文件将自动从src/main/resources/templates
中获取。
2、JSP模版
Spring Boot不太支持常用的JSP
模板,并且没有提供对应的集成配置,这是因为使用嵌入式Servet容器的Spring Boot应用程序对于JSP
模板存在一些限制, 具体如下所示:
- Spring Boot默认使用嵌入式Servlet容器以
JAR
包的方式进行项目打包部署,这种JAR
包方式不支持JSP
模板。 - 使用Undertow嵌入式容器部署Spring Boot项目时,不支持
JSP
模板。 - Spring Boot默认提供了一个处理请求路径"
/error
"的统一错误处理器, 返回具体的异常信息。使用JSP
模板时,无法使用Spring Boot自带的异常处理器,只能根据要求在Spring Boot项目的指定位置定制错误页面。