1.写在前面
th:if、th:unless、th:switch、th:case 这几个属性,其实和JSP里面的那些标签都是类似的,含义就可以理解为Java语言中的if、else、switch-case这些条件判断一样,所以这里就不再详细叙述了,下面就直接给出例子!!!
2.应用举例
首先写一个控制层, 其中有一个请求方法。
package com.songzihao.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class UserController {
@RequestMapping(value = "/condition")
public String condition(Model model) {
model.addAttribute("sex","男");
model.addAttribute("flag",true);
model.addAttribute("status",0);
return "condition";
然后是对应的html页面。
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<meta charset="UTF-8">
<title>条件判断</title>
</head>
<h2>th:if 用法:如果满足条件显示(执行),否则相反</h2>
<div th:if="${sex eq '男'}">
<div th:if="${sex eq '女'}">
woman
<h2>th:unless 用法:与th:if相反</h2>
<div th:unless="${status != 1}">
状态为0,不太行
<div th:unless="${status ne 0}">
状态为1,真不错
<h2>th:switch/th:case 用法</h2>
<div th:switch="${flag}">
<span th:case="true">真</span>
<span th:case="false">假</span>
<span th:case="*">无此布尔值</span>
</body>
</html>
最后是我们的核心配置文件(只有一行:关闭Thymeleaf的页面缓存)、项目启动入口类。
spring.thymeleaf.cache=false
package com.songzihao.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
1)如果表达式结果为布尔值,则为 true 或者 false
2)如果表达式的值为 null,th:if 将判定此表达式为 false
3)如果值是数字,为 0 时,判断为 false;不为零时,判定为 true
4)如果 value 是 String,值为 “false”、“off”、“no” 时,判定为 false,否则判断为 true,字符串为空时,也判断为 true
5)如果值不是布尔值,数字,字符或字符串的其它对象,只要不为 null,则判断为 true
条件判断使用th:if,它会判断表达式是否成立,表达式的结果支持boolean、number、character、String及其他类型。
满足下面情况下,if语句成立:
(1) 表达式的结果是数字且不是0
(2) 表达式的结果是字符串且不是false、off、no、0
(3) 表达式的结果是其他数据类型switch case语句
(1) 类似Java的switch case语句:th:...
th:if 如果值为true 则显示出该标签 否则 不显示(隐藏)
#lists.isEmpty(userList) true 集合为空
#lists.isEmpty(userList) false 集合非空
<h3 th:if ="not ${#lists.isEmpty(userList)}">显示 出来userList非空 </h...
1 th:action 定义后台控制器的路径,类似<form>标签的 action 属性,主要结合 URL 表达式,获取动态变量
2 th:method设置请求方法<form id="login" th:action="@{/login}" th:method="post">......</form>
3th:href定义超链接,主要结合 URL 表达式,获取动态变量
4th:sr...
Thymeleaf介绍
简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:
Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增...
学习视频: http://www.itlaoqi.com/chapter/1688.html
源码地址: QQ群 814077650 , 群共享中自助下载
老齐的官网: itlaoqi.com (更多干货就在其中)
页面中显示Model中的变量
使用${}获取Model中的属性值
在标签中增加th:t...
写了一个页面页面,新增,编辑,查看用的都是同一个页面。编辑和查看没问题,menu.price是有值的。
<input type="number" name="price" th:value="${menu.price}"placeholder="请设置您价格" required>
新增就报错了...
在上面的示例中,我们使用 `th:if` 属性来判断 `user` 对象是否为空。如果不为空,则渲染 `div` 元素及其子元素;否则,不渲染任何内容。在 `div` 元素中,我们使用 `th:text` 属性来显示用户的名字。
除了判断对象是否为空,还可以使用 `th:if` 来判断表达式是否为真。例如:
```html
<div th:if="${user.age > 18}">
<p>You are old enough to vote!</p>
在上面的示例中,我们使用 `th:if` 属性来判断用户的年龄是否大于 18。如果为真,则渲染 `div` 元素及其子元素;否则,不渲染任何内容。在 `div` 元素中,我们显示一条消息,告诉用户他/她已经足够年龄参加投票。