1、th:fragment
Thymeleaf 可以使⽤th:fragment 属性来定义被包含的模版⽚段,以供其他模版包含。
2、th:insert、th:replace、th:include区别
写个公共模块
在其他页面引用
<div th:insert="foot :: copy"></div>
<div th:replace="foot :: copy"></div>
<div th:include="foot :: copy"></div>
区别:
- th:insert:将被引用的模板片段插⼊到自己的标签体中
- th:replace:将被引用的模板片段替换掉自己
- th:include:类似于 th:insert,⽽不是插⼊⽚段,它只插⼊此⽚段的内容。
3、th:text 与 th:utext
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/toUserView")
public String toUserView(Model model){
User user = new User();
user.setUsername("马超");
user.setPassword("<p style='color:red'>123</p>");
user.setGender(1);
model.addAttribute("user",user);
return "users";
}
}
获取属性:
<div>
<p th:text="${user.username}">西凉</p>
<p th:text="${user.gender}==0?'女':'男'"></p>
</div>
<div th:object="${user}">
<p th:text="*{username}">西凉</p>
<p th:text="*{password}"></p>
<p th:utext="*{password}"></p>
</div>
页面展示:
可以看出th:utext会解析html代码,显示对应的效果。
当数据量比较多的时候,频繁的写user.
就会非常麻烦。用 th:object="${user}"
获取user的值,并且保存。在内部任意元素上,可以通过 *{属性名}
的方式,来获取user中的属性
性别用三元运算没啥好说的
4、th:if
不给username设值
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/toUserView")
public String toUserView(Model model){
User user = new User();
user.setPassword("123");
user.setGender(1);
model.addAttribute("user",user);
return "users";
}
}
页面上加以判断: strings的用法和java基本上一样
<p id="one" th:if="${#strings.isEmpty(user.username)}">黄忠</p>
<p id="two" th:if="${user} != null">张飞</p>
显示:
未完待续。。。