您的位置:首页>>资讯中心>>学习园地

Thymeleaf

image.png

开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了。SpringBoot支持如下页面模板语言

Thymeleaf

FreeMarker

Velocity

Groovy

JSP

上面并没有列举所有SpringBoot支持的页面模板技术。其中Thymeleaf是SpringBoot官方所推荐使用的,下面来谈谈Thymeleaf一些常用的语法规则。

添加Thymeleaf依赖

要想使用Thhymeleaf,首先要在pom.xml文件中单独添加Thymeleaf依赖。


<dependency>


    <groupId>org.springframework.bootgroupId>


    <artifactId>spring-boot-starter-thymeleafartifactId>


dependency>

Spring Boot默认存放模板页面的路径在src/main/resources/templates或者src/main/view/templates,这个无论是使用什么模板语言都一样,当然默认路径是可以自定义的,不过一般不推荐这样做。另外Thymeleaf默认的页面文件后缀是.html。

数据显示

在MVC的开发过程中,我们经常需要通过Controller将数据传递到页面中,让页面进行动态展示。

显示普通文本

创建一个Controller对象,在其中进行参数的传递


在SpringBoot默认的页面路径下创建show.html文件,内容如下

https://www.thymeleaf.org"> <head> <title>SpringBoot模版渲染title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> head> <body> <p th:text="'用户ID:' + ${uid}"/> <p th:text="'用户名称:' + ${name}"/> body> html>

可以看到在p标签中有th:text属性,这个就是thymeleaf的语法,它表示显示一个普通的文本信息。

如果我们要显示的信息是存在资源文件中的,同样可以在页面中显示,例如资源文件中定义了内容welcome.msg=欢迎{0}光临!。可以在页面中将其显示



h2 th=#{welcome.msg('admin')}">

th:utext<pth:text'数学计算:1+2=' + (1 + 2)" 显示带有样式的普通文本

Jerry"); return "show_style"; }

th:utext

 

 

我们常常需要将一个bean信息展示在前端页面当中。

1.页面展示

2.

3.<div>

4.

5.    <p th:text="'用户编号:' + ${member.uid}"/>

6.

7.    <p th:text="'用户姓名:' + ${member.name}"/>

8.

9.    <p th:text="'用户年龄:' + ${member.age}"/>

10.

11.    <p th:text="'用户工资:' + ${member.salary}"/>

12.

13.    <p th:text="'出生日期:' + ${member.birthday}"/>

14.

15.    <p th:text="'出生日期:' + ${#dates.format(member.birthday,'yyyy-MM-dd')}"/>

16.

17.div>

18.

19.

20.

21.<hr/>

22.

23.<div th:object="${member}">

24.

25.    <p th:text="'用户编号:' + *{uid}"/>

26.

27.    <p th:text="'用户姓名:' + *{name}"/>

28.

29.    <p th:text="'用户年龄:' + *{age}"/>

30.

31.    <p th:text="'用户工资:' + *{salary}"/>

32.

33.    <p th:text="'出生日期:' + *{birthday}"/>

34.

35.    <p th:text="'出生日期:' + *{#dates.format(birthday,'yyyy-MM-dd')}"/>

36.

37.div>

38.

39.

40.

41.

42.

43.

44. 上面给出了两种展现方式,一种是通过${属性},另外一种是通过$访问完整信息,而访问指定对象中的属性内容, 如果访问的只是普通的内容两者没有区别;

<em style="color: rgb(204, 204, 204); background-color: transparent; font-family: Consolas, Monaco, " andale="" mono",="" "ubuntu="" monospace;="" font-size:="" 1em;="" white-space:="" inherit;="" word-spacing:="" normal;="" box-sizing:="" border-box;"=""> 


上一篇: SSM核心框架概述

下一篇: vue安装