SpringBoot引入Thymeleaf的实现方法

 更新时间:2019年04月04日 10:31:44   作者:Bobby  
这篇文章主要介绍了SpringBoot引入Thymeleaf的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.Thymeleaf简介

Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用 

Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模,Thymeleaf的可扩展性也非常棒。你可以使用它定义自己的模板属性集合,这样就可以计算自定义表达式并使用自定义逻辑,Thymeleaf还可以作为模板引擎框架。

2.引入Thymeleaf

引入依赖

在maven(pom.xml)中直接引入:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置Thymeleaf

在application.yml配置Thymeleaf

server:
 port: 8000
spring:
 thymeleaf:
 cache: false # 关闭页面缓存
 encoding: UTF-8 # 模板编码
 prefix: classpath:/templates/ # 页面映射路径
 suffix: .html # 试图后的后缀
 mode: HTML5 # 模板模式

# 其他具体配置可参考org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties
# 上面的配置实际上就是注入该类的属性值

demo示例

创建IndexController

@Controller
public class IndexController {
 // 返回视图页面
 @RequestMapping("index")
 public String index(){
  return "index";
 }

}

创建index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
 Hello Thymeleaf!
</body>
</html>

创建TestController

@RestController
public class TestController {
 
 // 返回整个页面
 @RequestMapping("/test")
 public ModelAndView test(){
  return new ModelAndView("test");
 }
}

创建test.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
Hello Thymeleaf! </br>
By: ModelAndView
</body>
</html>

3.测试结果



4.Thymeleaf基础语法及使用

1.引入标签 

html标签里引入xmlns:th="http://www.thymeleaf.org"才能使用th:*这样的语法

2.引入URL 

@{...} 

例如:

<a th:href="@{http://www.baidu.com}" rel="external nofollow" >绝对路径</a> 是访问绝对路径下的URL, <a th:href="@{/}" rel="external nofollow" >相对路径</a> 是访问相对路径下的URL。

<a th:href="@{css/bootstrap.min.css}" rel="external nofollow" >是引入默认的static下的css文件夹下的bootstrap文件,类似的标签有: th:href 和 th:src

3.获取变量 

通过${}取值,对于JavaBean的话,使用变量名.属性名获取

4.字符串替换

<span th:text="'Welcome to our application, ' + ${user.name} + '!'"></span>
或者
<span th:text="|Welcome to our application, ${user.name}!|"></span>

注意:|…|中只能包含变量表达式${…},不能包含其他常量、条件表达式等

5.运算符 

   在表达式中可以使用各类算术运算符
   例如 (+, -, *, /, %)
   例如:th:with="isEven=(${stat.number} % 1 == 0)"
   逻辑运算符 (>, <, <=,>=,==,!=)
   需要注意的是使用<,>的时候需要转义

th:if="${stat.number} &gt; 1"
th:text="'Execution mode is ' + ( (${execMode} == 'dev')? 'Development' : 'Production')"

6.条件 

if/unless th:if是该标签在满足条件的时候才会显示,unless是不成立时候才显示

<a th:href="@{/login}" rel="external nofollow" th:unless=${user.number != null}>Login</a>

switch  thymeleaf支持switch结构,默认属性(default)用*表示

<div th:switch="${user.role}">
  <p th:case="'admin'">User is an administrator</p>
  <p th:case="#{roles.manager}">User is a manager</p>
  <p th:case="*">User is some other thing</p>
</div>

7.循环

<tr th:each="prod : ${prods}">
 <td th:text="${prod.name}">Onions</td>
 <td th:text="${prod.price}">2.41</td>
 <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
</tr>

8.Utilities

内置在Context中,可以直接通过#访问
#dates
#calendars
#numbers
#strings
arrays
lists
sets
maps

5.小结

本文讲述了如何在Spring Boot中引入模板引擎Thymeleaf以及Thymeleaf基础语法和实际使用

本文GitHub地址:https://github.com/ishuibo/SpringAll

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 剑指Offer之Java算法习题精讲链表与字符串及数组

    剑指Offer之Java算法习题精讲链表与字符串及数组

    跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化
    2022-03-03
  • mybatis中关于type-aliases-package的使用

    mybatis中关于type-aliases-package的使用

    这篇文章主要介绍了mybatis中关于type-aliases-package的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • IDEA 单元测试创建方法详解(2020.03版本亲测)

    IDEA 单元测试创建方法详解(2020.03版本亲测)

    这篇文章主要介绍了IDEA 单元测试创建方法详解(2020.03版本亲测),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Spring MVC获取查询参数及路径参数代码实例

    Spring MVC获取查询参数及路径参数代码实例

    这篇文章主要介绍了Spring MVC获取查询参数及路径参数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 详解java中反射机制(含数组参数)

    详解java中反射机制(含数组参数)

    这篇文章主要介绍了详解java中反射机制(含数组参数)的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • SpringMVC中控制器返回JSON数据的实现

    SpringMVC中控制器返回JSON数据的实现

    本文主要介绍了SpringMVC中控制器返回JSON数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • java的三种随机数生成方式的实现方法

    java的三种随机数生成方式的实现方法

    这篇文章主要介绍了java的三种随机数生成方式的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java中Properties类的操作实例详解

    Java中Properties类的操作实例详解

    这篇文章主要介绍了Java中Properties类的操作实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • JAVA内存溢出解决方案图解

    JAVA内存溢出解决方案图解

    这篇文章主要介绍了JAVA内存溢出解决方案图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SpringMVC拦截器实现单点登录

    SpringMVC拦截器实现单点登录

    这篇文章主要介绍了SpringMVC拦截器实现单点登录,简单介绍了springmvc拦截器,单点登录实现原理等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11

最新评论