目录:
(1)内置工具类:#dates
(2)内置工具类:#numbers
(3)内置工具类:#strings
(4)内置工具类: #lists
(5)null处理
可以查看官方文档:内置工具类对象,19开始
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
内置工具类对象
(1)内置工具类:#dates
控制器:ThymeleafController:
package com.bjpowernode.controller;
import com.bjpowernode.model.SysUser;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.*;
@Controller
@RequestMapping("/tpl") //放在类上方的这个注解会和@GetMapping一起组成完整的访问路径
public class ThymeleafController {
//内置工具类对象
@GetMapping("/utilobject")
public String utilObject(Model model){
model.addAttribute("mydate",new Date());
model.addAttribute("mynum",26.695);
model.addAttribute("mystr","bjpowernode");
List<String> list=Arrays.asList("a","b","c");//使用Arrays的工具类创建集合
model.addAttribute("mylist",list);
return "utilObject";
}
}
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>index.html--学习Thymeleaf语法</h3>
<a href="tpl/expression1">标准变量表达式</a>
<br>
<a href="tpl/expression2">选择变量表达式</a>
<br>
<a href="tpl/link">连接表达式</a>
<br>
<a href="tpl/property">模板属性</a>
<br>
<a href="tpl/eachList">循环list集合</a>
<br>
<a href="tpl/eachArray">循环数组Array</a>
<br>
<a href="tpl/eachMap">循环Map集合</a>
<br>
<a href="tpl/ifunless">判断语句if和unless</a>
<br>
<a href="tpl/switch">判断语句switch</a>
<br>
<a href="tpl/inline">内联iniline</a>
<br>
<a href="tpl/text">字面量</a>
<br>
<a href="tpl/strjoin">字符串连接</a>
<br>
<a href="tpl/sym">运算符的使用</a>
<br>
<a href="tpl/baseObject">内置对象</a>
<br>
<a href="tpl/utilobject">内置工具类对象</a>
</body>
</html>
模板utilObject.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="margin-left: 300px">
<h3>日期类的工具类对象 #dates</h3>
--format默认的是我们国家日期的标准格式:--
<p th:text="${#dates.format(mydate)}"></p>
--指定日期格式:--
<p th:text="${#dates.format(mydate,'yyyy-MM-dd')}"></p>
<p th:text="${#dates.format(mydate,'yyyy-MM-dd HH:mm:ss')}"></p>
<!--获取年-->
<p th:text="${#dates.year(mydate)}"></p>
<!--获取月-->
<p th:text="${#dates.month(mydate)}"></p>
<!--获取月的字符串-->
<p th:text="${#dates.monthName(mydate)}"></p>
<!--创建一个时间-->
<p th:text="${#dates.createNow()}"></p>
</div>
</body>
</html>
重新启动主启动类 :
package com.bjpowernode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ThymeleafApplication {
public static void main(String[] args) {
SpringApplication.run(ThymeleafApplication.class, args);
}
}
点击内置工具类对象:
(2)内置工具类:#numbers
模板:utilObject.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="margin-left: 300px">
<h3>日期类的工具类对象 #dates</h3>
--format默认的是我们国家日期的标准格式:--
<p th:text="${#dates.format(mydate)}"></p>
--指定日期格式:--
<p th:text="${#dates.format(mydate,'yyyy-MM-dd')}"></p>
<p th:text="${#dates.format(mydate,'yyyy-MM-dd HH:mm:ss')}"></p>
<!--获取年-->
<p th:text="${#dates.year(mydate)}"></p>
<!--获取月-->
<p th:text="${#dates.month(mydate)}"></p>
<!--获取月的字符串-->
<p th:text="${#dates.monthName(mydate)}"></p>
<!--创建一个时间-->
<p th:text="${#dates.createNow()}"></p>
<h3>内置工具类#numbers,操作数字的</h3>
<p th:text="${#numbers.formatCurrency(mynum)}"></p>
<p th:text="${#numbers.formatDecimal(mynum,5,2)}"></p>
</div>
</body>
</html>
(3)内置工具类:#strings
模板utilObject.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="margin-left: 300px">
<h3>工具类#strings,操作字符串</h3>
<p th:text="${#strings.toUpperCase(mystr)}"></p>
<p th:text="${#strings.indexOf(mystr,'power')}"></p>
--取字符串[2,5)不包含5--
<p th:text="${#strings.substring(mystr,2,5)}"></p>
--下标2开始之后的字符串--
<p th:text="${#strings.substring(mystr,2)}"></p>
<p th:text="${#strings.concat(mystr,'---java开发的皇甫军校')}"></p>
<p th:text="${#strings.length(mystr)}"></p>
<p th:text="${#strings.length('hello')}"></p>
<!--unless假的时候才执行-->
<p th:unless="${#strings.isEmpty(mystr)}">mystr不是空字符串</p>
</div>
</body>
</html>
(4)内置工具类: #lists
模板utilObject.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="margin-left: 300px">
<br>
<h3>内置工具类#lists,操作list集合</h3>
<p th:text="${#lists.size(mylist)}"></p>
<p th:if="${#lists.contains(mylist,'a')}">有成员a</p>
<p th:if="!${#lists.isEmpty(mylist)}">list 集合有成员</p>
</div>
</body>
</html>
(5)null处理
控制器:
package com.bjpowernode.controller;
import com.bjpowernode.model.SysUser;
import com.bjpowernode.vo.Cat;
import com.bjpowernode.vo.Dog;
import com.bjpowernode.vo.Zoo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.*;
@Controller
@RequestMapping("/tpl") //放在类上方的这个注解会和@GetMapping一起组成完整的访问路径
public class ThymeleafController {
//内置工具类对象
@GetMapping("/utilobject")
public String utilObject(Model model){
model.addAttribute("mydate",new Date());
model.addAttribute("mynum",26.695);
model.addAttribute("mystr","bjpowernode");
List<String> list=Arrays.asList("a","b","c");//使用Arrays的工具类创建集合
model.addAttribute("mylist",list);
//创建Zoo对象
Zoo zoo=new Zoo();
Cat cat=new Cat();
cat.setName("短腿");
Dog dog=new Dog();
dog.setName("二哈");
zoo.setCat(cat);
// zoo.setDog(dog); zoo.dog=null
model.addAttribute("zoo",zoo);
return "utilObject";
}
}
模板utilObject.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="margin-left: 300px">
<br>
<h3>处理null</h3>
<!--当zoo。dog没有赋值,取的时候是null,通过添加一个问号就可以取的时候不报错,加?后name为空时不去取这个内容-->
<p th:text="${zoo.dog?.name}"></p>
<p th:text="${zoo.cat.name}"></p>
</div>
</body>
</html>
如果不加?,会报错