Springboot之Thymeleaf 入门(环境搭建)|第一章-yellowcong

Thymeleaf 这个模版引擎是Springboot推荐的,而以前我们使用的jsp,人家Springboot已经不推荐使用了,相对于Thymeleaf ,jsp的效率低一些。搭建Thymeleaf 的环境步骤:1、配置pom.xml配置文件,添加spring-boot-starter-thymeleafnekohtml两个依赖包;2、配置poperites ;3、创建控制器类;4、创建模板文件;5、访问测试。

代码地址

https://gitee.com/yellowcong/springboot-thymeleaf/tree/master/chapter1

目录结构

这里写图片描述

Springboot推荐的模版引擎

Spring Boot提供了默认配置的模板引擎主要有以下几种:

1、Thymeleaf
2、FreeMarker
3、Velocity
4、Groovy
5、Mustache

Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置

当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,可以通过配置spring.thymeleaf.prefix=classpath:/templates/,设定模板的路径。

搭建Thymeleaf

1、配置pom.xml

这个地方导入了spring-boot-starter-thymeleafnekohtml两个依赖包,nekohtml 这个依赖包是为了解决默认的HTML5模版要求严格的问题,修改默认模版spring.thymeleaf.mode=LEGACYHTML5,可以解决这个问题。

<!-- 导入thymeleaf模版 的依赖-->
      <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-thymeleaf</artifactId>
   </dependency>

    <!-- spring.thymeleaf.mode=LEGACYHTML5 -->
    <dependency>
      <groupId>net.sourceforge.nekohtml</groupId>
    <artifactId>nekohtml</artifactId>
   </dependency>

2、配置application.properties

这个地方,我们需要注意spring.thymeleaf.mode=LEGACYHTML5spring.thymeleaf.cache=false 这两个地方的配置。这两个不是默认的配置,而是修改过的。解决界面缓存和html检查严格的问题。

#日志地址
logging.file=logs/config/demo-xx.log
info.name=入门案例‹

#端口号
server.port=80
#访问路径
server.context-path=/

##############################################
#配置Thymeleaf 
#thymeleaf start
spring.thymeleaf.mode=LEGACYHTML5
#编码
spring.thymeleaf.encoding=UTF-8
#返回模板类型
spring.thymeleaf.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
# 在构建URL时预先查看名称的前缀 (默认就是这个)
spring.thymeleaf.prefix=classpath:/templates/
# 构建URL时附加查看名称的后缀.(默认就是 html的结尾的)
spring.thymeleaf.suffix=.html
#thymeleaf end
##############################################

3、配置控制器

package com.yellowcong.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 创建日期:2018年4月5日<br/>
 * 代码创建:黄聪<br/>
 * 功能描述:管理员<br/>
 */
@Controller
public class IndexController {

    /**
     * 创建日期:2018年4月5日<br/>
     * 代码创建:黄聪<br/>
     * 功能描述:首页模版<br/>
     * @return
     */
    @RequestMapping("/index")
    public String index(ModelMap map){
        //单个数据
        map.put("username", "入门案例");
        return "admin/index";
    }
}

4、添加模板

我们需要在/resources/templates这个目录下,建立对应的模板文件。

<!DOCTYPE html>
<!-- 需要添加
<html  xmlns:th="http://www.thymeleaf.org"/>
这样在后面的th标签就不会报错
 -->
<html  xmlns:th="http://www.thymeleaf.org">
<head lang="en">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title th:text="${username}">xx</title>
</head>
<body>
<h1 th:text="${username}">Hello World</h1>
</body>
</html>

5、访问测试

可以看到,访问后,我们的title部分,和body部分,都有了类容提示了。
这里写图片描述

常见问题

1、Whitelabel Error Page

导致这个问题的一般原因,就是html的模板,没有严格遵循html5的标准,导致了报错,你可能会发现在默认配置下,thymeleaf对.html的内容要求很严格,比如<meta charset="UTF-8" />
如果少最后的标签封闭符号/,就会报错而转到错误页。也比如你在使用Vue.js这样的库,然后有<div v-cloak></div>这样的html代码,
也会被thymeleaf认为不符合要求而抛出错误。

解决问题的方式有两种:1、严格遵循html5;2、添加依nekohtml赖包,配置application.properties 设置spring.thymeleaf.mode = LEGACYHTML5
spring.thymeleaf.mode的默认值是HTML5,其实是一个很严格的检查,改为LEGACYHTML5可以得到一个可能更友好亲切的格式要求。

这里写图片描述

配置LEGACYHTML5

配置这个的时候,还需要添加依nekohtml赖包,然后配置application.properties 设置spring.thymeleaf.mode = LEGACYHTML5

<!-- spring.thymeleaf.mode=LEGACYHTML5 -->
<dependency>
    <groupId>net.sourceforge.nekohtml</groupId>
    <artifactId>nekohtml</artifactId>
 </dependency>

参考文章

https://www.thymeleaf.org/documentation.html
https://www.codercto.com/a/3110.html
http://blog.didispace.com/categories/Spring-Boot/

Thymeleaf是一个用于在服务器端生成HTML页面的Java模板引擎。它允许你在HTML文件中嵌入表达式和逻辑,以便根据动态数据生成最终的HTML页面。 要使用Thymeleaf生成HTML,你需要安装Thymeleaf的依赖,并在你的Java项目中配置Thymeleaf模板引擎。下面是一个简单的示例来演示如何使用Thymeleaf生成HTML。 1. 首先,确保在你的项目中包含了Thymeleaf的依赖。你可以通过在你的构建工具(如Maven或Gradle)的配置文件中添加Thymeleaf依赖来实现。 2. 在你的Java web应用程序中,创建一个Controller类来处理页面请求。这个Controller类将处理生成HTML的逻辑。你可以使用Spring MVC或其他类似的框架来实现。 3. 在你的项目中创建一个Thymeleaf模板文件,其文件扩展名通常为.html或者.xhtml。在这个模板文件中,你可以使用Thymeleaf的语法来嵌入表达式、条件逻辑和循环等。 4. 在你的Controller类中,使用Thymeleaf模板引擎来处理模板文件并生成最终的HTML页面。你可以使用Thymeleaf提供的相关API来加载模板、设置模型数据和渲染模板。 5. 最后,在你的Controller方法中返回生成的HTML页面,以便将其显示给用户。 这只是一个简单的示例来介绍Thymeleaf生成HTML的基本步骤。Thymeleaf还提供了许多其他功能,如表单处理、国际化和片段包含等。你可以参考Thymeleaf官方文档来了解更多详细信息和示例。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值