- , 25 4月 2021
- 作者 847954981@qq.com
- 前端学习, 后端学习
Thymeleaf入门
Thymeleaf 是一个Spring用来开发动态网站的模板
Maven依赖
代码语言:javascript
复制
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
代码语言:javascript
复制
@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";//返回到模板的网页的名称
}
}
在Controller的基础上通过model.addAttribute("songList",songList);
方法创建了一个Model对象,然后return到模板网页。
默认匹配到src/main/resources/templates/
下的HTML 且会自动匹配后缀因此只需要写名字即可。
代码语言:javascript
复制
th:text="{songList.name}"//以此作为属性来调用Model对象</code></pre></div></div><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>javascript</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-javascript"><code class="language-javascript" style="margin-left:0">th:each="song : {songs}"//Thymeleaf的循环语法,它的子标签会循环
当然这个songs要是一个List
在each中存在一个it 的可选参数th:each="song,it : ${songs}"
用于表示很多统计需求
在子标签中可以使用it属性来完成以下:
代码语言:javascript
复制
it.index -----迭代对象的index(从0开始)
it.count -----迭代对象的index(从1开始)
it.current -----当前的迭代对象(相当于上面的song)
it.even/odd -----布尔值,当前循环是否为偶数或奇数(从0开始计算)
it.first -----布尔值,当前循环是否是第一个
it.last -----布尔值,当前循环是否是最后一个