1. 程式人生 > >java鬼混筆記:springboot之thymeleaf 3:th:each遍歷

java鬼混筆記:springboot之thymeleaf 3:th:each遍歷

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>