Spring Boot支持的视图技术
前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体实现,只关注自己页面的呈现效果即可,并且解决了前端代码错综复杂的问题、实现了前后端分离开发。Spring Boot框架对很多常用的模板引擎技术提供了整合支持,具体介绍如下。
● FreeMarker:FreeMarker是一个基于模板生成输出文本(HTML页面、电子邮件、配置文件等)的模板引擎,同时它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入所开发产品的组件。
● Groory:Groory是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大特性,Groovy代码能够与Java代码很好地结合,也能扩展现有代码。由于Groory运行在JVM上的特性,因此Groovy可以使用其他Java语言编写的库。
● Thymeleaf:Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎,该模板主要以静态HTML页面嵌入标签属性,浏览器可以直接打开模板文件,便于前后端联调。
● Mustache:Mustache是轻逻辑的模板引擎(Logic-less templates),它是一个JS模板,用于对JS的分离展示。Mustache的优势在于可以应用在JavaScript、PHP、Python、Perl等多种编程语言中。
Spring Boot不太支持常用的JSP模板,并且没有提供对应的整合配置,这是因为使用嵌入式Servlet容器的Spring Boot应用程序对于JSP模板存在一些限制,具体如下所示。
● Spring Boot默认使用嵌入式Servlet容器以JAR包方式进行项目打包部署,这种JAR包方式不支持JSP模板。
● 如果使用Undertow嵌入式容器部署Spring Boot项目,也不支持JSP模板。
● Spring Boot默认提供了一个处理请求路径“/error”的统一错误处理器,返回具体的异常信息。使用JSP模板时,无法对默认的错误处理器进行覆盖,只能根据Spring Boot要求在指定位置定制错误页面。
上面对Spring Boot支持的模板引擎进行了介绍,并指出了整合JSP模板的一些限制。接下来,本章将选择其中常用的Thymeleaf模板引擎进行介绍,并完成与Spring Boot框架的整合实现。
小提示:
在使用Spring Boot框架进行Web应用开发时,可以选择使用传统的Spring MVC框架进行整合开发,也可以使用Spring 5之后出现的Spring WebFlux框架(异步交互)进行整合开发。针对于熟悉的MVC框架整合实现,Spring Boot实现了与FreeMarker、Groovy、Thymeleaf和Mustache前端模板引擎技术的整合支持和自动化配置;针对于WebFlux框架的整合实现,Spring Boot则实现了与FreeMarker、Thymeleaf和Mustache前端模板引擎技术的整合支持和自动化配置。而本教材中Web开发都是添加Web模块下的Web依赖,使用传统的MVC框架进行整合讲解;如果后期选择使用WebFlux框架进行整合讲解,则需要添加Web模块下的Reactive Web依赖。