如果要在Thymeleaf模板中获取从控制传递的数据,需使用th标签。
1.在Thymeleaf模板页面引入th标签的命名空间。
test.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
test
<hr/>
<label th:text="${book.bookName}">图书名称</label>
</body>
</html>
2.在Thymeleaf模板页面取值。
th:text
在几乎所有的HTML双标签都可以使用 th:text 属性,将接收到的数据显示在标签的内容中。
text.html:
价格:<label th:text="${price}"></label> <br>
字符串:<div th:text="${str}"></div>
<p th:text="${book.bookName}"></p> <!--${book.bookName}:OGNL 对象图导航语言-->
th:inline 内联标签
HTML内联
<p th:inline="text">图书名称:[[${book.bookName}]]</p>
CSS内联:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css" th:inline="css">
.style1{
color:[[${color}]] ;
}
</style>
</head>
<body>
test
<hr/>
价格:<label th:text="${price}"></label> <br>
字符串:<div th:text="${str}"></div>
<p th:text="${book.bookName}"></p> <!--${book.bookName}:OGNL 对象图导航语言-->
<p th:inline="text" class="style1">图书名称:[[${book.bookName}]]</p> <!--${book.bookName}:OGNL 对象图导航语言-->
</body>
</html>
JavaScript内联:
<script type="css/javascript" th:inline="javascript">
</script>
th:object 和 *
<div th:object="${book}">
<p th:text="*{bookId}"></p>
<p th:text="*{bookName}"></p>
<p th:text="*{bookAuthor}"></p>
</div>
3.流程控制
th:each 循环
<table style="width: 600px" border="1" cellspacing="0">
<caption>图书信息列表</caption>
<thead>
<tr>
<th>图书ID</th>
<th>图书名称</th>
<th>作者</th>
</tr>
</thead>
<tbody>
<tr th:each="b:${books}">
<td th:text="${b.bookId}"></td>
<td th:text="${b.bookName}"></td>
<td th:text="${b.bookAuthor}"></td>
</tr>
</tbody>
</table>
th:if 分支
<table style="width: 600px" border="1" cellspacing="0">
<caption>图书信息列表</caption>
<thead>
<tr>
<th>图书ID</th>
<th>图书名称</th>
<th>作者</th>
<th>图书价格</th>
<th>购买建议</th>
</tr>
</thead>
<tbody>
<tr th:each="b:${books}">
<td th:text="${b.bookId}"></td>
<td th:text="${b.bookName}"></td>
<td th:text="${b.bookAuthor}"></td>
<td th:text="${b.bookPrice}"></td>
<td th:if="${b.bookPrice}>40" style="color: red">太贵!!!</td>
<td th:if="${b.bookPrice}<=40" style="color: green">推荐购买</td>
</tr>
</tbody>
</table>
th:swich 和 th:case 分支
<table style="width: 600px" border="1" cellspacing="0">
<caption>图书信息列表</caption>
<thead>
<tr>
<th>图书ID</th>
<th>图书名称</th>
<th>作者</th>
<th>图书价格</th>
<th>购买建议</th>
</tr>
</thead>
<tbody>
<tr th:each="b:${books}">
<td th:text="${b.bookId}"></td>
<td th:text="${b.bookName}"></td>
<td th:text="${b.bookAuthor}"></td>
<td th:text="${b.bookPrice}"></td>
<!-- <td th:if="${b.bookPrice}>40" style="color: red">太贵!!!</td>-->
<!-- <td th:if="${b.bookPrice}<=40" style="color: green">推荐购买</td>-->
<td th:switch="${b.bookPrice}/10">
<label th:case="1">建议购买</label>
<label th:case="3">价格合理</label>
<label th:case="*">价格不合理</label>
</td>
</tr>
</tbody>
</table>
4.Thymeleaf碎片使用
碎片,就是HTML片段,我们可以将多个页面中使用的相同的HTML标签部分单独定义,然后通过 th:include 在HTML网页中引入对应的碎片。
新建一个 header.html 。
<!DOCTYPE html>
<html lang="en" xmlns:th="https://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div th:fragment="fragment1" style="width: 100%; height: 80px;background: lightgreen; color: white; font-size: 16px;">
java 22:08
</div>
</body>
</html>
新建一个 fooder.html 。
<!DOCTYPE html>
<html lang="en" xmlns:th="https://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div th:fragment="fragment2" style="width: 100%; height: 30px;background: deepskyblue; color: white; font-size: 25px;font-family: 黑体">
java 2022.4.26!
</div>
</body>
</html>
新建一个 a.html 。
<!DOCTYPE html>
<html lang="en" xmlns:th="https://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div th:include="header::fragment1"></div>
<div style="width: 100%; height: 500px">
定义内容
</div>
<div th:include="footer::fragment2"></div>
</body>
</html>
在 PageController.java 中:
@RequestMapping("/a.html")
public String a(){
return "a";
}
输入网址: http://localhost:8081/a.html 进行运行。结果:
发现成功拥有header样式和fooder样式。但是没有格式。
将将a.html的header样式改为:
<!--<div th:include="header::fragment1"></div>-->
<div th:replace="header::fragment1"></div>
成功出现样式!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/128188.html