支持的视图技术
前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体实现,只关注自己页面的呈现效果即可,并且解决了前端代码错综复杂的问题、实现了前后端分离开发。Spring Boot框架对很多常用的模板引擎技术(如∶FreMarker、Thymeleaf、Mustache等)提供了整合支持
Spring Boot不太支持常用的JSP模板,并且没有提供对应的整合配置,这是因为使用嵌入式Servlet容器的Spring Boot应用程序对于SP模板存在一些限制 ∶
Spring Boot默认使用嵌入式Servlet容器以AR包方式进行项目打包部署,这种AR包方式不支持JSP模板。
如果使用Undertow嵌入式容器部署Spring Boot项目,也不支持SP模板。
Spring Boot默认提供了一个处理请求路径"/rr"的统一错误处理器,返回具体的异常信息。使用JSP模板时,无法对默认的错误处理器进行覆盖,只能根据Spring Boot要求在指定位置定制错误页面。
上面对Spring Boot支持的模板引擎进行了介绍,并指出了整合JSP模板的一些限制。接下来,对其中常用的Thymeleaf模板引擎进行介绍,并完成与Spring Boot框架的整合实现
Thymeleaf
Thymeleaf是一种现代的基于服务器端的Java模板引擎技术,也是一个优秀的面向ava的XML、XHTML、HTML5页面模板,它具有丰富的标签语言、函数和表达式,在使用Spring Boot框架进行页面设计时,一般会选择Thymeleaf模板
Thymeleaf语法
常用标签
在HTML页面上使用Thymelea标签, Thymelef标签能够动态地替换掉静态内容,使页面动态展示。为了大家更直观的认识Thymeleaf,下面展示一个在HTML文件中嵌入了Thymelea的页面文件,示例代码如下∶
href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
Title欢迎进入Thymeleaf的学习
上述代码中,"xmlnsth=http/wwwthymeleaf.org"用于引入Thymeleaf模板引擎标签,使用关键字th"标注标签是Thymeleaf模板提供的标签,其中,"th∶href"用于引入外联样式文件,"th∶text"用于动态显示标签文本内容。
除此之外,Thymeleaf模板提供了很多标签,接下来,通过一张表罗列Thymeleaf的常用标签
标准表达式
Thymelef模板引擎提供了多种标准表达式语法,在正式学习之前,先通过一张表来展示其主要语法及说明
1. 变量表达式${...}
变量表达式${...}主要用于获取上下文中的变量值,示例代码如下∶
这是标题
示例使用了Thymeleaf模板的变量表达式${…}用来动态获取P标签中的内容,如果当前程序没有启动或者当前上下文中不存在title变量,该片段会显示标签默认值"这是标题";如果当前上下文中存在title变量并且程序已经启动,当前P标签中的默认文本内容将会被title变量的值所替换,从而达到模板引擎页面数据动态替换的效果
同时,Thymeleaf为变量所在域提供了一些内置对象,具体如下所示
# ctx∶上下文对象# vars∶上下文变量
# locale∶上下文区域设置
# request∶(仅限web Context)HttpServletRequest对象
# response∶(仅限web Context)HttpServletResponse对象
# session∶(仅限web Context)HttpSession对象
# servletContext∶(仅限Web Context)ServletContext对象
结合上述内置对象的说明,假设要在Thymeleaf模板引擎页面中动态获取当前国家信息,可以使用
locale内置对象