Thymeleaf
开发传统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;"="">