java鬼混筆記:springboot之thymeleaf 3:th:each遍歷
阿新 • • 發佈:2019-02-16
jsp裡面有個c:foreach遍歷,thymeleaf裡面也有th:each
來個裝簡單的遍歷,先看java程式碼
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> m = new HashMap<String, Object>(); m.put("name", "name1"); m.put("age", "1"); list.add(m); m = new HashMap<String, Object>(); m.put("name", "name2"); m.put("age", "2"); list.add(m); m = new HashMap<String, Object>(); m.put("name", "name3"); m.put("age", "3"); list.add(m); m = new HashMap<String, Object>(); m.put("name", "name4"); m.put("age", "4"); list.add(m); m = new HashMap<String, Object>(); m.put("name", "name5"); m.put("age", "5"); list.add(m); model.addAttribute("list", list);
接著看html寫法:
簡單遍歷:
<table border="1">
<tr th:each="m : ${list}"><!-- 其中m是個臨時變數,像for(User u : userList)那樣中的u-->
<td th:text="${m.name}"/>
<td th:text="${m.age}"/>
</tr>
</table>
除了遍歷,我們還可以拿到遍歷的其他資訊,比如下標,單行雙行,這時要有一狀態變數,假設命名為:iterStat,那麼從iterStat中可獲取的資訊如下:
// 來自官網:
當前迭代索引,從0開始。這是index屬性。
當前迭代索引,從1開始。這是count屬性。
迭代變數中的元素總數。這是size財產。
每個迭代的iter變數。這是current財產。
目前的迭代是偶數還是奇數。這些是even/odd布林屬性。
目前的迭代是否是第一個。這是first布林屬性。
目前的迭代是否是最後一個。這是last布林屬性。
看html:
<table border="1">
<tr th:each="m,iterStat : ${list}">
<td th:text="|下標:${iterStat.index} 下標是不是單數:${iterStat.odd}|"/>
<td th:text="${m.name}"/>
<td th:text="${m.age}"/>
</tr>
</table>