首页 » 技术乱弹 » 正文

Spring Boot 之 Thymeleaf 篇

发表于: 青年博客 · 2018-1-1 ·  100 views  ·  0 replies 

在Spring boot中,官方默认采用的是Thymeleaf模块引擎,通过org.springframework.boot.autoconfigure.thymeleaf包对Thymeleaf进行了自动配置。

通过Thymeleaf2Configuration类对集成所需要的Bean进行自动配置,包括templateResolver、templateViewResolver 和templateEngine 的配置。

通过ThymeleafProperties来配置Thymeleaf,在application.properties中以 spring.thymeleaf开头来配置,通过查看ThymeleafProperties的主要源码,可以看出如何设置属性及默认配置:

以上关于ThymeleafProperties类的中文注释,为个人根据代码理解及其原代码英文注释而来。

在spring boot中整合Thymeleaf需要加入对Thymeleaf的依赖:

创建一个HelloController 类,通过spring mvc 返回页面,来通过Thymeleaf渲染一个页面。

直接打开html页面展现Hello World,但是启动程序后,访问http://localhost:8080/hello,则是展示Controller中host的值:http://www.baikeyang.com,做到了不破坏HTML自身内容的数据逻辑分离。

启动项目,直接访问,会有一个异常抛出:

spring.thymeleaf.mode的默认值是HTML5,其实是一个很严格的检查,对.html的内容要求很严格,比如<meta charset=”UTF-8″ />,如果少最后的标签封闭符号/,就会报错而转到错误页。也比如你在使用<br/>、<link>、<meta>这样的html标签,也会被thymeleaf认为不符合要求而抛出错误。

因为,我可以调整spring.thymeleaf.mode,改为LEGACYHTML5可以得到一个可能更友好亲切的格式要求。

需要注意的是,LEGACYHTML5需要搭配一个额外的库NekoHTML才可用。需要给项目添加NekoHTML的依赖:

最后重启项目就可以感受到不那么严格的thymeleaf了,访问正常。

 

 

本文链接: http://www.baikeyang.com/code/97344.html
0 like+
«上一篇: :下一篇»

相关文章

Thymeleaf 基本表达式

如需了解Thymeleaf以及Thymeleaf整合Spring Boot,请参考《...

Spring boot 之 Web应用开发篇

本篇文章主要是围绕如何在Spring Boot中进行Web开发呢? &n...

Spring Boot 起步

Spring Boot快速起步。至于什么是Spring Boot?它能干些什...

JavaScript将数组字符串转数组对象的方法

在JavaScript,如何将数组字符串转数组对象呢?可以利用强...

Jquery圣诞节特效

为了庆祝圣诞节(其实是为了悼念我这毫无收获的一年),自...

部署在多个tomcat同一个项目在同一个浏览器中导致session失效问题

最近在服务器部署环境时,发现了一个现象。同一个项目,部...

《Spring Boot 之 Thymeleaf 篇》有0个想法

  1. 还没有任何评论,你来说两句吧

Leave a reply