所有的页面模板都一定存在有各种基础逻辑,例如:判断,循环处理操作。
在 Thymeleaf 之中对于逻辑可以使用如下的一些运算符来完成,例如:and、or、关系比较(>、<、>=、<=、==、!=、lt、gt、le、ge、eq、ne)。
1、通过控制器传递一些属性内容到页面之中:
package cn.mldn.microboot.controller;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import cn.mldn.microboot.util.controller.AbstractBaseController;
import cn.mldn.microboot.vo.Member;
@Controller
public class MessageController extends AbstractBaseController {
@RequestMapping(value = "/message/member_show", method = RequestMethod.GET)
public String memberShow(Model model) {
Member vo = new Member();
vo.setMid(101L);
vo.setName("啊三");
vo.setAge(9);
vo.setSalary(99999.99);
vo.setBirthday(new Date());
model.addAttribute("member", vo);
return "message/member_show";
}
}
member_show.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>SpringBoot模版渲染</title>
<script type="text/javascript" th:src="@{/js/main.js}"></script>
<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
<span th:if="${member.age lt 18}">
未成年人!
</span>
<span th:if="${member.name eq '啊三'}">
欢迎小三来访问!
</span>
</body>
</html>
2、除了这种做法之外还可以实现不满足条件的判断:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>SpringBoot模板渲染</title>
<link rel="icon" type="image/x-icon" href="/images/favicon.ico" />
<meta http-equiv="Content-Type" content="text/html;charse=UTF-8">
</head>
<body>
<span th:unless="${member.age gt 18}">
你还不满18岁,不能够看电影!
</span>
</body>
</html>
3、在开发之中还会使用到switch这样的语句来进行多内容的判断
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>SpringBoot模板渲染</title>
<link rel="icon" type="image/x-icon" href="/images/favicon.ico" />
<meta http-equiv="Content-Type" content="text/html;charse=UTF-8">
</head>
<body>
<span th:switch="${member.mid}">
<p th:case="100">uid为101的员工来了</p>
<p th:case="99">uid为102的员工来了</p>
<p th:case="*">没有匹配成功的数据!</p>
</span>
</body>
</html>
在thymeleaf之中实现的switch语句之中并没有default的存在,如果要使用default功能就采用th:case="*"的模式完成匹配处理。