Spring Boot学习笔记(6)—— SpringBoot整合Thymeleaf模板引擎

1、引入Thymeleaf:pom.xml文件加入Thymeleaf启动器


org.springframework.boot
spring-boot-starter-thymeleaf

控制层代码:

@RequestMapping(value = "/success", method = RequestMethod.GET)
public String success(Map map) {
	map.put("name", "张三");
	/**
	 * 当引入了thymeaf启动器依赖之后,会自动在 classpath 下面创建一个 templates 的资源文件夹
	 * 通过对 ThymeleafProperties 类的分析得到:thymeaf模板的默认前缀是:classpath:/templates/,后缀是:.html
	 * 所以这里直接返回 success,项目会自动去 classpath:/templates/ 下面查找 success.html 文件
	 */
	return "success";
}

success.html代码:





Thymeleaf模板


你好。。。

这里显示名字

2、Thymeleaf语法
1、Thymelea常用属性:

Spring Boot学习笔记(6)—— SpringBoot整合Thymeleaf模板引擎_第1张图片

2、声明与引入公共代码片段:

header.html:





这是th:fragment声明公共片段
这是id选择器声明公共片段

success.html:



3、迭代:th:each

常用迭代方式:
HelloController:

@RequestMapping("/study")
public String study(Map map, HttpServletRequest request) {
	List userList = new ArrayList<>();
	userList.add(new User("小梦", 1));
	userList.add(new User("小李", 2));
	userList.add(new User("小张", 1));
	map.put("userList", userList);
	return "study";
}

study.html:

姓名
mengxuegu

获取迭代状态:

编号 姓名 总数 偶数/奇数 第一个元素 最后一个元素
0 mengxuegu 未知 0
4、条件判断

th:if 不仅判断返回为 true 的表达式,还判断一些特殊的表达式。

如果值不是Null, 以下情况均返回 true:
如果值是boolean类型并且值为true.
如果值是数值类型并且值不为0.
如果值是字符类型并且值不为空.
如果值是字符串并且内容不为 “false” , “off” 或者 “no” .
如果值不是上述类型也返回true.

如果值是NULL, 则返回false


下面加not

th:if判断,如果此文字显示说明有值

th:unless判断,如果此文字显示说明有值

th:unless 与 th:if 作用正好相反。
th:swith th:case:

@RequestMapping("/study")
public String study(Map map, HttpServletRequest request) {
	List userList = new ArrayList<>();
	userList.add(new User("小梦", 1));
	userList.add(new User("小李", 2));
	userList.add(new User("小张", 1));
	map.put("userList", userList);
	// 1女, 2男
	map.put("sex", 1);
	map.put("man", 2);
	return "study";
}

未知

5、显示标签体内容

th:text 转义特殊字符, 即 h1标签以文本显示出来
th:utext 不转义特殊字符, 即 h1 标签展现出本来效果

@RequestMapping("/study")
public String study(Map map, HttpServletRequest request) {
	List userList = new ArrayList<>();
	userList.add(new User("小梦", 1));
	userList.add(new User("小李", 2));
	userList.add(new User("小张", 1));
	map.put("userList", userList);
	// 1女, 2男
	map.put("sex", 1);
	map.put("man", 2);
	// th:text th:utext
	map.put("desc", "欢迎来到

梦学谷

"); return "study"; }

**补充:**Thymeleaf 行内表达式双中括号: [[表达式]] (就是不在标签上使用属性):

 [[${desc}]]

Hello, [[${desc}]] 。。。

6、th:object 直接取出对象

使用th:object 直接取出对象,然后写对象里的属性名即可获取属性值

@RequestMapping("/study")
public String study(Map map, HttpServletRequest request) {
	List userList = new ArrayList<>();
	userList.add(new User("小梦", 1));
	userList.add(new User("小李", 2));
	userList.add(new User("小张", 1));
	map.put("userList", userList);
	// 1女, 2男
	map.put("sex", 1);
	map.put("man", 2);
	// th:text th:utext
	map.put("desc", "欢迎来到

梦学谷

"); request.getSession().setAttribute("user", new User("小不点", 2)); return "study"; }


姓名:xxxx

性别:xxxx

你可能感兴趣的:(SpringBoot,SpringBoot,Thymeleaf)