Thymeleaf入门
Thymeleaf是一个模板框架。
可以通过模板引擎,可以把java对象数据+模板页面动态的渲染出一个真实的HTML页面
初始化Thymeleaf
只需要在pom文件中添加Maven依赖即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
数据传递
在方法参数中引入一个Model对象,就可以通过这个Model对象传递数据到页面中
引入Model类
import org.springframework.ui.Model;
例
@Controller
public class SongListControl {
@Autowired
private SongListService songListService;
@RequestMapping("/songlist")
public String index(@RequestParam("id")String id,Model model){
SongList songList = songListService.get(id);
//传递歌单对象到模板当中
//第一个 songList 是模板中使用的变量名
// 第二个 songList 是当前的对象实例
model.addAttribute("songList",songList);
return "songList";
}
}
Thymeleaf变量
<span th:text="${msg}">Hello</span>
等同于
<span>你好</span> //msg变量值为你好
固定的语法格式${xxx}
要想调用变量,就需要先设置变量到模板上下文中
import org.springframework.ui.Model;
@Controller
public class DemoControl {
@RequestMapping("/demo")
public String index(Model model){
String str = "你好";
model.addAttribute("msg",str);
return "demo";
}
}
model.addAttribute("msg",str);
这个方法第一个参数设置的就是上下文变量名(可以随意定义)
第二个参数设置的是变量值(可以是任意对象)
对象变量
可以使用**.**把属性调用出来
比如
import org.springframework.ui.Model;
@Controller
public class DemoControl {
@RequestMapping("/demo")
public String index(Model model){
SongList songList = new SongList();
songList.setId("0001");
songList.setName("爱你一万年");
model.addAttribute("sl",songList);
return "demo";
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
</head>
<body>
<span th:text="${sl.id}"></span>
<span th:text="${sl.name}"></span>
</body>
</html>
Thymeleaf循环语句
<ul th:each="song : ${songs}">
<li th:text="${song.name}">歌曲名称</li>
</ul>
Thymeleaf循环语句使用的是th;each
Thymeleaf条件语句
使用的是th:if
,if表达式的值是true的情况下就会进行渲染
<span th:if="${user.sex == 'male'}">男</span>