Thymeleaf入门

  • , 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(&#34;songList&#34;,songList);

return &#34;songList&#34;;//返回到模板的网页的名称

}
}

在Controller的基础上通过model.addAttribute("songList",songList);方法创建了一个Model对象,然后return到模板网页。

默认匹配到src/main/resources/templates/下的HTML 且会自动匹配后缀因此只需要写名字即可。

代码语言:javascript
复制
th:text="{songList.name}&#34;//以此作为属性来调用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=&#34;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 -----布尔值,当前循环是否是最后一个