Notadmin
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
前言
Thymeleaf模板是spring boot中经常使用的模板引擎,而Thymeleaf存在注入漏洞,这篇文件就一起来认识一下这个漏洞。
关于java安全的系列已经出了9篇,大家感兴趣可以去看一下,后续会继续出关于java安全方面的内容,如java内存马,Weblogic系列,spring框架系统漏洞等。
由于本人水平有限,文章中可能会出现一些错误,欢迎各位大佬指正,感激不尽。如果有什么好的想法也欢迎交流~~
Thymeleaf模版
先来了解一下Thymeleaf模版
Thymeleaf 是与 java 配合使用的一款服务端模板引擎,也是 spring 官方支持的一款服务端模板引擎。他支持 HTML 原型,在 HTML 标签中增加额外的属性来达到模板 + 数据的展示方式。默认前缀:/templates/ ,默认后缀:.html 。
特点
- 使用模块引擎来编写动态页面,让开发人员无法在页面上编写 Java 代码,使得java代码和前端代码绝对的分离。
- SpringBoot默认整合Thymeleaf,不需要任何配置直接整合成功,打jar包发布不需要做任何配置。
- Thymeleaf相对于其他的模板引擎(如:Freemaker、velocity),有强大的工具支持。
- 相对于Jsp页面,执行效率高。
Thymeleaf语法规则
在使用Thymeleaf时页面要引入名称空间: xmlns:th="http://www.thymeleaf.org"
1、th属性,常用th属性如下:
1)th:text:文本替换;
2)th:utext:支持html的文本替换。
3)th:value:属性赋值
4)th:each:遍历循环元素
5)th:if:判断条件,类似的还有th:unless,th:switch,th:case
6)th:insert:代码块引入,类似的还有th:replace,th:include,常用于公共代码块提取的场景
7)th:fragment:定义代码块,方便被th:insert引用
8)th:object:声明变量,一般和*{}一起配合使用,达到偷懒的效果。
9)th:attr:设置标签属性,多个属性可以用逗号分隔
2、标准表达式语法:
${...}变量表达式,Variable Expressions
@{...}链接表达式,Link URL Expressions
#{...}消息表达式,Message Expressions
~{...}代码块表达式,Fragment Expressions
*{...}选择变量表达式,Selection Variable Expressions
例子
<!DOCTYPE HTML> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <div th:fragment="header"> <h3>Spring Boot Web Thymeleaf Example</h3> </div> <div th:fragment="main"> <span th:text="'Hello, ' + ${message}"></span> </div> <a th:href="@{/webjars/bootstrap/4.0.0/css/bootstrap.css}">test</a> </html>
Thymeleaf模板注入
畅读付费文章
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
